Поменять даты создания, изменения, доступа к файлу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. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |