-
Собственно на VCL это делалось так: FileSetDate(FileHandle, DatetimeToFiledate(EncodeDate(2007, 01, 01))); А как аналогично сделать на KOL? И еще - как получить дату создания файла?
-
FileTime(); классная процедурка :о)
-
Спасибо :)
-
Хм, сделал так:
If Find_First(FileName, find) then
begin
CreateTime:=find.ftCreationTime;
CreateTime.dwLowDateTime:=CreateTime.dwLowDateTime-100000;
FileTime(FileName, @CreateTime, @find.ftLastAccessTime, @find.ftLastWriteTime);
end; дату не меняет :(
-
procedure SetTimeFile(Filename:String; ST:TSystemTime);
var
FileHandle:THandle;
FileTime: TFileTime;
DT:TDateTime;
begin
ZeroMemory(@FileTime,sizeof(FileTime));
SystemTime2DateTime(ST,DT);
DateTime2FileTime( dt,FileTime);
FileHandle:=CreateFile(PChar(Filename), GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
SetFileTime(FileHandle,nil,nil,@FileTime);
CloseHandle(FileHandle);
end;
procedure TForm1.Button4Click(Sender: PObj);
var
ST:TSystemTime;
begin
with ST do
begin
wYear:=2007;
wMonth:=1;
wDay:=1;
wHour:=10;
wMinute:=10;
wSecond:=10;
end;
SetTimeFile('c:\1.wav',st);
end;
-
> Compiler Спасибо, мне еще пригодилась бы функция получения даты файла. Судя по всему, это будет чтото вроде твоего куска кода, только с GetFileTime?
-
Все, уже сделал такую функцию: function GetTimeFile(FileName: string): TSystemTime;
var
FileHandle:THandle;
FileTime: TFileTime;
DT:TDateTime;
begin
ZeroMemory(@FileTime,sizeof(FileTime));
FileHandle:=CreateFile(PChar(Filename), GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
GetFileTime(FileHandle, nil, nil, @FileTime);
CloseHandle(FileHandle);
FileTime2DateTime(FileTime, DT);
DateTime2SystemTime(DT, result);
end;
|