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

Как прочесть атрибут файла Last Accessed (последний доступ)

Delphi , Файловая система , Файлы

Как прочесть атрибут файла Last Accessed (последний доступ)


procedure TForm1.Button1Click(Sender: TObject);
var
  FileHandle: THandle;
  LocalFileTime: TFileTime;
  DosFileTime: DWORD;
  LastAccessedTime: TDateTime;
  FindData: TWin32FindData;
begin
  FileHandle := FindFirstFile('AnyFile.FIL', FindData);
  if FileHandle <> INVALID_HANDLE_VALUE then
  begin
    Windows.FindClose(Handle);
    if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
      FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
      FileTimeToDosDateTime(LocalFileTime,
        LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo);
      LastAccessedTime := FileDateToDateTime(DosFileTime);
      Label1.Caption := DateTimeToStr(LastAccessedTime);
    end;
  end;
end;

Here's the translation of the text into Russian:

Код, который вы предоставили, - это приложение VCL (Visual Component Library), написанное на Delphi, и предназначенное для чтения атрибута "Последнее использование" файла.

Вот что код делает:

  1. Он использует функцию FindFirstFile для поиска файла с именем 'AnyFile.FIL' на локальном компьютере.
  2. Если файл найден, он закрывает поиск handle с помощью FindClose.
  3. Он проверяет, не является ли файл директории, проверяя свойство dwFileAttributes структуры TWin32FindData, которая содержит информацию о файле.
  4. Если файл не является директории, он конвертирует поле ftLastWriteTime структуры TWin32FindData в локальное время файла с помощью функции FileTimeToLocalFileTime.
  5. Затем он конвертирует это локальное время в DOS-дату и время с помощью функции FileTimeToDosDateTime.
  6. Результатирующая DOS-дата и время хранятся в переменной LastAccessedTime, которая имеет тип TDateTime.
  7. Наконец, он отображает последнее использование как строку с помощью функции DateTimeToStr.

Результат отображается в контроле метки (Label1) на форме.

Если вам нужно прочитать атрибут "Последнее использование" файла, этот код должен работать для вас. Однако помните, что это атрибут может не быть доступен или не обновлен для всех типов файлов или хранилищ.

Альтернативное решение - использовать функцию GetFileTime из Windows API для получения последнего использованного времени файла. Вот пример:

procedure TForm1.Button1Click(Sender: TObject);
var
  FileHandle: THandle;
  LastAccessedTime: TDateTime;
begin
  FileHandle := CreateFile('AnyFile.FIL', GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
  if FileHandle <> INVALID_HANDLE_VALUE then
  begin
    GetFileTime(FileHandle, @LastAccessedTime);
    Label1.Caption := DateTimeToStr(LastAccessedTime);
    CloseHandle(FileHandle);
  end;
end;

Код использует функцию CreateFile для открытия файла для чтения и общего доступа, а затем вызывает GetFileTime, чтобы получить последнее использованное время. Результат отображается в контроле метки на форме, как и в вашем оригинальном коде.

В статье описывается способ чтения атрибута "Last Accessed" файла в Delphi, который хранит информацию о времени последнего доступа к файлу.


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

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




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


:: Главная :: Файлы ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:09:37/0.0032968521118164/1