Текущий архив: 2006.01.22;
Скачать: CL | DM;
Вниз
Как изменить ВРЕМЯ создания файла? Найти похожие ветки
← →
sadko (2006-01-05 20:45) [0]
← →
begin...end © (2006-01-05 20:51) [1]API-функция SetFileTime. Будут вопросы -- спрашивайте.
← →
sadko (2006-01-05 20:55) [2]я извиняюсь, приведите пример исспользования
← →
Gero © (2006-01-05 21:11) [3]> sadko (05.01.06 20:55)
http://www.google.com.ru/search?q=SetFileTime
По первой же ссылке будет описапние с примером.
← →
begin...end © (2006-01-05 21:30) [4]> sadko (05.01.06 20:55) [2]
Пример. Устанавливает время создания файла равной текущему времени.var
H: Cardinal;
ST: TSystemTime;
FT: TFileTime;
begin
H := FileOpen("C:\MyFile.txt", fmOpenWrite);
try
GetSystemTime(ST);
SystemTimeToFileTime(ST, FT);
SetFileTime(H, @FT, nil, nil);
finally
FileClose(H)
end
end
← →
Revan (2006-01-05 21:42) [5]
procedure TfrmMain.ChangeDate(AFileName: string);
var
i: TDate;
H: Integer;
f: TFileTime;
s: TSystemTime;
begin
H := CreateFile(PChar(AFileName), $0100, 0, nil, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, 0);
i := Date;
DateTimeToSystemTime(i, S);
SystemTimeToFileTime(S, F);
LocalFileTimeToFileTime(F, F);
SetFileTime(H, @f, @f, @f);
CloseHandle(H);
end;
Вот так! Проверено :)
← →
Gero © (2006-01-05 21:44) [6]
// SetFileToCurrentTime - sets last write time to current system time
// Return value - TRUE if successful, FALSE otherwise
// hFile - must be a valid file handle
BOOL SetFileToCurrentTime(HANDLE hFile)
{
FILETIME ft;
SYSTEMTIME st;
BOOL f;
GetSystemTime(&st); // gets current time
SystemTimeToFileTime(&st, &ft); // converts to file time format
f = SetFileTime(hFile, // sets last-write time for file
(LPFILETIME) NULL, (LPFILETIME) NULL, &ft);
return f;
}
← →
Gero © (2006-01-05 21:44) [7]А у вас без комментариев! :P
← →
Fay © (2006-01-05 22:04) [8]2 Revan (05.01.06 21:42) [5]
> H: Integer;
На самом деле DWORD
> , FILE_FLAG_BACKUP_SEMANTICS
А жирно не будет?
> OPEN_EXISTING
Это, конечно здорово, но где проверка результата CreateFile?
Да и ваще, зачем такие ужасы сi := Date;
?
GetLocal(System)Time ещё никто не отменял.
З.Ы.
Странное имя для для даты - i.
Да и тип странный - TDate. Date() возвращает конкретно TDateTime.
Страницы: 1 вся ветка
Текущий архив: 2006.01.22;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.045 c