Время создания файла

Обсуждение программ nnCron и nnCron LITE

Время создания файла

Postby WAndrey » Tue, 11 Mar 2014, 15:03

В некий файл записывается дата-время, раз в 30 дней файл надо создавать заново, дабы размер не вырастал сверх меры.

nncron.exe v 1.93b13 Build 1172 18.03.2013

Code: Select all
  S" %aSrc COUNT%\NewFiles" EVAL-SUBST 30 PURGE-OLD
  GET-CUR-TIME
  FILE-APPEND: "%aSrc COUNT%\NewFiles" "%DD%.%MM%.%YYYY% %hh%:%mm%:%ss%%crlf%"

Дата-время создания файла не изменяется :(
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Время создания файла

Postby Morituruz » Tue, 11 Mar 2014, 17:07

Несколько раз перечитал, ничего не понял.
Дата создания файла — информация из файловой системы.
PURGE-OLD удаляет файлы старше указанного времени, а вы вроде как пытаетесь работать с одним файлом.
Наверное вам нужно просто удалять файл:
Code: Select all
FILE-DELETE: "%aSrc COUNT%\NewFiles"
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Время создания файла

Postby SeMa » Tue, 11 Mar 2014, 17:15

WAndrey wrote:дабы размер не вырастал сверх меры.

Может, это подойдёт?
И насколько принципиально GET-CUR-TIME? Информация обновляется несколько раз в минуту?
P.S. Не знаю, верно ли в справке, но у меня S" %mm% %ss%" EVAL-SUBST TYPE выводит реальные (текущие) секунды.
Можно ещё воспользоваться словом FT>DD.MM.YYYY/hh:mm:ss
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Время создания файла

Postby WAndrey » Wed, 12 Mar 2014, 21:14

Morituruz wrote:Несколько раз перечитал, ничего не понял.
Дата создания файла — информация из файловой системы.
PURGE-OLD удаляет файлы старше указанного времени, а вы вроде как пытаетесь работать с одним файлом.
Наверное вам нужно просто удалять файл:
Code: Select all
FILE-DELETE: "%aSrc COUNT%\NewFiles"

Объясню еще раз :)
В файл по некоторому событию добавляются строки, в данном случае дата-время. Каждые 30 дней файл надо удалять и создавать заново.
А какая принципиальная разница для PURGE-OLD один файл проверять или миллион?
Пробовал я и FILE-DELETE. Что в моей конструкции, что с FILE-DELETE после выполнения FILE-APPEND дата создания нового файла равна дате создания удаленного. Т.е. дата создания не меняется.
Теперь понятно?
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Время создания файла

Postby WAndrey » Wed, 12 Mar 2014, 21:21

SeMa wrote:
WAndrey wrote:дабы размер не вырастал сверх меры.

Может, это подойдёт?
И насколько принципиально GET-CUR-TIME? Информация обновляется несколько раз в минуту?
P.S. Не знаю, верно ли в справке, но у меня S" %mm% %ss%" EVAL-SUBST TYPE выводит реальные (текущие) секунды.
Можно ещё воспользоваться словом FT>DD.MM.YYYY/hh:mm:ss

Ну задача ставилась удалять файл каждые 30 дней, поэтому "это" не подходит.
GET-CUR-TIME принципиально, нужна точность до секунды. И проблема не в форматировании строки времени которая записывается в файл. Проблема в том, что при удалении файла и добавлении в файл с тем же именем командой FILE-APPEND чего либо, дата создания нового файла равна дате создания удаленного предыдущей командой.
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Время создания файла

Postby WAndrey » Wed, 12 Mar 2014, 21:27

Я уже попробовал последовательно выполнить FILE-DELETE, FILE-CREATE, FILE-APPEND - дата создания остается от удаленного файла :(
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Время создания файла

Postby VoidVolker » Wed, 12 Mar 2014, 23:54

Это виндовый глюк - только что проверил. Легко воспроизводится в проводнике. Решение такое: сначала файл надо переименовать, затем удалить. Далее создать новый файл с другим именем и его переименовать в исходное.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

установка и изменение времени файла SetFileTime

Postby AlikasS » Thu, 13 Mar 2014, 04:33

можно установливать новые времена файла
Code: Select all
WINAPI: SetFileTime KERNEL32.DLL
: SET-FILE-TIME ( г м д ч м с S" имя-файла" - ) { \ handlfile newtime  -- } \ установить время создания файла
R/W OPEN-FILE-SHARED THROW TO handlfile
 YMDHMS>FT SWAP SP@ TO newtime
 0 0 newtime   handlfile SetFileTime DROP
    handlfile CLOSE-FILE THROW 2DROP
;

: SET-FILE-ATIME ( г м д ч м с S" имя-файла" - ) { \ handlfile newtime  -- } \ установить время последнего доступа к файлу
R/W OPEN-FILE-SHARED THROW TO handlfile
 YMDHMS>FT SWAP SP@ TO newtime
 0  newtime 0  handlfile SetFileTime DROP
    handlfile CLOSE-FILE THROW 2DROP
;

: SET-FILE-WTIME ( г м д ч м с S" имя-файла" - ) { \ handlfile newtime  -- } \ установить время модификации файла
R/W OPEN-FILE-SHARED THROW TO handlfile
 YMDHMS>FT SWAP SP@ TO newtime
 newtime 0 0  handlfile SetFileTime DROP
    handlfile CLOSE-FILE THROW 2DROP
;
в твоем случае использовать
Code: Select all
FT-CUR FT>YMDHMS  S" %aSrc COUNT%\NewFiles" EVAL-SUBST SET-FILE-TIME

или в общем случае
Code: Select all
2013 08 15 23 58 00 S" C:\dir\какойтофайл.txt" SET-FILE-TIME
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Время создания файла

Postby WAndrey » Thu, 13 Mar 2014, 10:43

Эээ. Стал пробовать с переименованием. Дата все одно остается от старого файла :(
Вариант с установкой времени работает.
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57

Re: Время создания файла

Postby VoidVolker » Wed, 26 Mar 2014, 11:09

Попрошу придерживаться чуть более конструктивных диалогов :axe: ;)
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Время создания файла

Postby WAndrey » Wed, 26 Mar 2014, 14:30

:prayer:
WAndrey
 
Posts: 44
Joined: Fri, 20 May 2011, 10:57


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests

cron