Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно изменить дату и время создания файла?


Jumbot ©   (2002-10-04 18:31:00) 

САБЖ


AL2002   (2002-10-04 20:22:00) [1]

Немножко попроще: :)

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);


kerk   (2002-10-04 20:13:00) [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:02:00) [3]

SetFileTime юнита SysUtils


Наверх

Титульная страница Поиск, карта сайта Написать письмо