|
Название | SaveDateTime |
Имя файла (*.txt) | SaveDateTime.txt |
Описание | Сохраняет в файл дату и время файлов |
Автор | Вахмурка |
Параметры | ("%L", "%P") |
Вызываемые плагины | file |
Иконка | |
Версия | 1.0 |
Дата обновления | 29.01.2006 |
local InFile = file.open(arg(1), "r") local OutName = arg(2) ++ "_NameDateFile.lst" local OutFile = file.open(OutName, "w") local Str, Counter, List, i, Date, Time, Temp flag clear 1 if(InFile > 0) do for(not(file.eof(InFile))) Str = file.readstring(InFile) if(Str != 0) Counter = Counter + 1 endfor else messagebox("ok error", "File not opened", "FILE plugin error #1") quit endif if(OutFile <= 0) do messagebox("ok error", "File not opened", "FILE plugin error #2") quit endif if(Counter == 1) do List = file.listfiles(arg(2), 0, 0) Counter = line(List, 0) flag set 1 else file.restart(InFile) endif for(i = 0; i < Counter; i = i + 1) if(pproflag(1)) do Str = line(List, i + 1) else Str = file.readstring(InFile) endif if(Str == OutName) jump Next file.writeline(OutFile, file.nametype(Str)) Temp = file.getdate(Str, "c") Date = select(Temp, 8) file.writeline(OutFile, Date) Time = select(Temp, 9, 14) file.writeline(OutFile, Time) Temp = file.getdate(Str, "m") Date = select(Temp, 8) file.writeline(OutFile, Date) Time = select(Temp, 9, 14) file.writeline(OutFile, Time) @Next endfor file.close(InFile) file.close(OutFile)
Данная пара скриптов реализует в определенном смысле наиболее общий подход к присвоению даты и времени создания и изменения одного файла другому. Другие скрипты, предназначенные для частных случаев: CopyDate и BatchCopyDate.
Скрипт SaveDateTime сохраняет дату и время создания и изменения выбранных файлов в файл с именем _NameDateFile.lst в текущей директории. Редактировать полученный файл не только не имеет смысла, но и не рекомендуется. Зато его можно переименовать и/или записать в определенное место для последующего использования скриптом LoadDateTime.
Файлы для сохранения их даты и времени можно выбрать двумя способами: если файлы выделены в группу, дата и время будут сохранены только для них. В противном случае будут сохранены дата и время всех файлов в текущей директории.
Название | LoadDateTime |
Имя файла (*.txt) | LoadDateTime.txt |
Описание | Восстанавливает из файла дату и время файлов |
Автор | Вахмурка |
Параметры |
("%L", "%P") или ("%L", "%P", "полный_путь_файла") |
Вызываемые плагины | file, vec |
Иконка | |
Версия | 1.0 |
Дата обновления | 29.01.2006 |
local InFile = file.open(arg(1), "r") local OutName = ifelse(arg(0) == 2, arg(2) ++ "_NameDateFile.lst", arg(3)) if(file.validpath(OutName) != 1) do messagebox("ok error", "Invalid file path " ++ OutName, "FILE plugin error #1") quit endif local OutFile = file.open(OutName, "r") local Str, Counter, List, i, j, Date, Time, Temp, Rex flag clear 1 if(InFile > 0) do for(not(file.eof(InFile))) Str = file.readstring(InFile) if(Str != 0) Counter = Counter + 1 endfor else messagebox("ok error", "File not opened", "FILE plugin error #3") quit endif if(Counter == 1) do List = file.listfiles(arg(2), 0, 0) Counter = line(List, 0) flag set 1 else file.restart(InFile) endif if(OutFile > 0) do for(not(file.eof(OutFile))) Str = file.readstring(OutFile) if(Str != 0) do Rex = Rex + 1 endif endfor else messagebox("ok error", "File not opened", "FILE plugin error #3") quit endif if(Rex % 3 != 0) do Str = "File " ++ OutName ++ " seems to be corrupted" messagebox("ok error", Str, "LoadDateTime Script") quit endif DT = vec.create(Rex) if(DT == 0) do messagebox("ok error", "Vector not created", "VEC plugin error") quit endif file.restart(OutFile) for(i = 0; i < Rex; i = i + 1) Str = file.readstring(OutFile) if(Str != 0) DT[i] = Str endfor file.close(OutFile) for(i = 0; i < Counter; i = i + 1) if(pproflag(1)) do Str = line(List, i + 1) else Str = file.readstring(InFile) endif if(Str == OutName) jump Next for(j = 0; j < Rex; j = j + 1) Temp = arg(2) ++ DT[j] if(file.validpath(Temp) == 1 && Temp == Str) do Date = DT[j + 1] Time = DT[j + 2] file.setdate(Str, "c", Date, Time) Date = DT[j + 3] Time = DT[j + 4] file.setdate(Str, "m", Date, Time) break endif endfor @Next endfor file.close(InFile) vec.unload
После искажения (как правило, нежелательного) даты и времени создания и/или изменения файла нужную информацию можно восстановить из списка, созданного скриптом SaveDateTime. Если у скрипта LoadDateTime два параметра, то файл-список с именем _NameDateFile.lst будет искаться в текущей директории. Если же задан третий параметр, то он должен указывать полное имя файла-списка.
Файлы, дату и время которых следует изменить, выбираются так же, как и для скрипта SaveDateTime: если выделена группа, то измененям будут подвергнуты файлы из нее, в противном случае, если ничего не выделено - все файлы в текущей директории.
На главную | Все о Total Commander | PowerPro | PowerPro & Total Commander |