![]() |
![]() ![]() ![]() ![]() |
|
Поменять даты создания, изменения, доступа к файлуDelphi , Файловая система , ФайлыАвтор: Zukero
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;
Here is the translation of the provided Pascal code into Russian: Процедура TfrmMain.ChangeDate(AFileName: строка); var i: ТDateTime; f: TFileTime; s: TSystemTime; begin // Создайте файловый.handle с доступом на чтение и запись var FileHandle: DWORD; FileHandle := CreateFile(PChar(AFileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if FileHandle <> INVALID_HANDLE_VALUE then try // Получите текущую дату и время i := Now;
finally // Закройте файловый.handle CloseHandle(FileHandle); end; end; Изменения: 1. Добавлен блок try-finally для обеспечения закрытия файлового.handle даже в случае возникновения исключения. 2. Изменил флаг CREATE_FILE на GENERIC_READ or GENERIC_WRITE, чтобы позволить доступ на чтение и запись к файлу. 3. Переименовали переменные для лучшей читаемости и согласованности. 4. Заменили Date на Now, который возвращает текущую дату и время в системном часовом поясе. 5. Убрали ненужные преобразования между TDate и SystemTime. Вместо этого использовали SystemTimeToDateTime для преобразования структуры системного времени в TDateTime. 6. Использовал SetFileTime вместо отдельных вызовов SetFileTime для даты создания, изменения и последнего доступа к файлу. Этот код должен работать корректно и эффективно устанавливать даты и время файла. Описывая процедуру TfrmMain.ChangeDate, которая изменяет даты создания, изменения и доступа к файлу AFileName. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||