Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получение даты создания каталога

Delphi , Файловая система , Директории



Автор: Dimka Maslov
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Функция определяет дату и время создания каталога и возвращает результат в формате TDateTime.

Cм. также: http://delphibase.endimus.com/?action=viewfunc&topic=fileattr&id=10497

Зависимости: Windows
Автор:       Dimka Maslov, mainbox@endimus.com, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        4 февраля 2004 г.
***************************************************** }

function GetDirTime(const Dir: string): TDateTime;
var
  H: Integer;
  F: TFileTime;
  S: TSystemTime;
begin
  H := CreateFile(PChar(Dir), $0080, 0, nil, OPEN_EXISTING,
    FILE_FLAG_BACKUP_SEMANTICS, 0);
  if H <> -1 then
  begin
    GetFileTime(H, @F, nil, nil);
    FileTimeToLocalFileTime(F, F);
    FileTimeToSystemTime(F, S);
    Result := SystemTimeToDateTime(S);
    CloseHandle(H);
  end
  else
    Result := -1;
end;

Пример использования:

ShowMessage(DateTimeToStr(GetDirTime('c:\Program Files')));

Вот перевод текста на русский язык:

Это функция Delphi, называемая GetDirTime, которая получает дату и время создания директории и возвращает ее как TDateTime. Вот разбивка кода:

function GetDirTime(const Dir: string): TDateTime;

Функция принимает параметр const типа string, который является путем к директории, дату и время создания которой нужно получить.

var
  H: Integer;
  F: TFileTime;
  S: TSystemTime;
begin

Функция объявляет три переменные:

  • H: целочисленный.handle для файла или директории
  • F: структура TFileTime, которая представляет время создания файла или директории
  • S: структура TSystemTime, которая представляет системное время, эквивалентное времени создания
  H := CreateFile(PChar(Dir), $0080, 0, nil, OPEN_EXISTING,
    FILE_FLAG_BACKUP_SEMANTICS, 0);

Функция открывает директории, указанную в параметре Dir, с помощью API CreateFile. Параметры следующие:

  • PChar(Dir): указатель на строку пути
  • $0080: желаемый режим доступа (чтение и запись)
  • 0: режим совместного использования (не используется в этом примере)
  • nil: атрибуты безопасности (не используются в этом примере)
  • OPEN_EXISTING: действие, которое нужно выполнить, если файл не существует (открыть его все равно)
  • FILE_FLAG_BACKUP_SEMANTICS: флаг, указывающий, что файл является резервной копией
  • 0: параметр hTemplateFile (не используется в этом примере)

Если функция fails, она возвращает -1. В противном случае, она продолжает выполняться.

if H <> -1 then
begin
  GetFileTime(H, @F, nil, nil);

Функция получает время создания директории с помощью GetFileTime, который заполняет структуру F временем файла. Параметры следующие:

  • H: handle для файла или директории
  • @F: указатель на структуру F
  • nil: время последнего доступа (не используется в этом примере)
  • nil: время модификации (не используется в этом примере)
  FileTimeToLocalFileTime(F, F);

Функция конвертирует файловое время из UTC (Coordinated Universal Time) в локальное время с помощью FileTimeToLocalFileTime.

  FileTimeToSystemTime(F, S);

Функция конвертирует файловое время из структуры TFileTime в структуру TSystemTime с помощью FileTimeToSystemTime. Результатное системное время хранится в структуре S.

  Result := SystemTimeToDateTime(S);

Функция конвертирует системное время из структуры TSystemTime в структуру TDateTime с помощью SystemTimeToDateTime. Это возвращает дату и время создания директории как TDateTime.

  CloseHandle(H);
end
else
  Result := -1;
end;

Если функция fails, она закрывает handle H (если он был открыт) и возвращает -1. В противном случае, она возвращает дату и время создания директории как TDateTime.

ShowMessage(DateTimeToStr(GetDirTime('c:\Program Files')));

Пример использования функции показывает, как вызвать ее с путем директории ('c:\Program Files') и отобразить результат с помощью ShowMessage и DateTimeToStr.

Функция GetDirTime позволяет получить дату и время создания каталога в формате TDateTime, используя функцию CreateFile для открытия файла каталога и FileTimeToLocalFileTime/GetFileTime для извлечения информации о времени создания.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Директории ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 03:25:37/0.0053048133850098/1