Функция принимает два параметра: FileName (строка, представляющая путь и имя файла) и FileDate (значение типа TDateTime, представляющее желаемую дату создания).
Переменные и инициализации
var
FileHandle : THandle;
FileSetDateResult : Integer;
Функция объявляет два локальных переменных: FileHandle типа THandle, который будет хранить файловый дескриптор, и FileSetDateResult типа Integer, который будет содержать результат функции FileSetDate.
Блок try-except-finally
try
try
FileHandle := FileOpen(
FileName,
fmOpenWrite OR fmShareDenyNone);
if FileHandle > 0 Then begin
FileSetDateResult :=
FileSetDate(
FileHandle,
DateTimeToFileDate(FileDate));
result := (FileSetDateResult = 0);
end;
except
Result := False;
end;
finally
FileClose(FileHandle);
end;
Код использует блок try-except-finally для обеспечения закрытия файлового дескриптора, независимо от возникновения исключения.
Внешний блок try пытается открыть файл с помощью FileOpen. Если это успешно, то продолжает устанавливать дату создания.
Внутренний блок try вызывает функцию FileSetDate с файловым дескриптором и желаемой датой создания. Если это успешно, то устанавливает результат функции в True.
Если возникает исключение при выполнении любого из этих шагов, внешний блок except ловит его и устанавливает результат функции в False.
Блок finally обеспечивает закрытие файлового дескриптора с помощью FileClose, независимо от возникновения исключения.
Пример использования
SetFileDate('c:\mydir\myfile.ext', Now)
Код устанавливает дату создания файла myfile.ext в директории c:\mydir\ на текущую дату и время (Now).
Установка даты создания файла в Delphi с помощью функции SetFileDate.
Комментарии и вопросы
:: 2011-12-13 05:03:51 :: re:Устанавливаем дату создания файла
Это функция установки последнего изменения файла, а не времени создания файла.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.