Текущий архив: 2002.10.14;
Скачать: CL | DM;
Вниз
Как можно изменить дату и время создания файла? Найти похожие ветки
← →
Jumbot (2002-10-04 18:31) [0]САБЖ
← →
AL2002 (2002-10-04 20:02) [1]SetFileTime юнита SysUtils
← →
kerk (2002-10-04 20:13) [2]Надесь это вам поможет :)
procedure SetFileTimeEx(FileName: TFileName; CreationTime, ModificationTime: TDateTime);
var
FCreationTime, FModificationTime: _FILETIME;
FileHandle: THandle;
function TDateTimeToUTC(ATime: TDateTime):_FILETIME;
var
SystemTime: _SYSTEMTIME;
LocalTime: _FILETIME;
begin
DecodeDate(ATime, SystemTime.wYear, SystemTime.wMonth,
SystemTime.wDay);
DecodeTime(ATime, SystemTime.wHour, SystemTime.wMinute,
SystemTime.wSecond, SystemTime.wMilliseconds);
SystemTime.wDayOfWeek := DayOfWeek(ATime) - 1;
if not SystemTimeToFileTime(SystemTime, LocalTime) then
RaiseLastWin32Error();
if not LocalFileTimeToFileTime(LocalTime, Result) then
RaiseLastWin32Error();
end;
begin
if not FileExists(FileName) then raise Exception.Create("File " +
FileName + " not exits.");
FCreationTime := TDateTimeToUTC(CreationTime);
FModificationTime := TDateTimeToUTC(ModificationTime);
FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyWrite);
if FileHandle = 0 then
RaiseLastWin32Error();
try
if not SetFileTime(FileHandle, @FCreationTime, nil, @FModificationTime) then
RaiseLastWin32Error();
finally
CloseHandle(FileHandle);
end;
end;
← →
AL2002 (2002-10-04 20:22) [3]Немножко попроще: :)
var h:Thandle;
Tnew:FileTime;
s:ofstruct;
SysTime,gt,Local:SYSTEMTIME;
begin
GetSystemTime(SysTime);
GetLocalTime(Local);
gt.wHour:=(systime.wHour);
gt.wMinute:=(systime.wMinute);
gt.wYear:=(systime.wYear);
gt.wMonth:=(systime.wMonth);
gt.wDay:=(systime.wDay);
gt.wSecond:=(systime.wSecond);
h:=OpenFile("File.txt",s,fmOpenReadWrite);
SystemTimetoFiletime(t,Tnew);
SetFileTime(h,@Tnew,nil,@Tnew);
FileClose(h);
Страницы: 1 вся ветка
Текущий архив: 2002.10.14;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.006 c