| 
 | 
| Название | 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 |