Помощь - Поиск - Пользователи - Календарь
Полная версия: Подскажите функцию извлечения даты создания файла
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Артем
Подскажите функцию извлечения даты создания файла
volvo
Цитата
Синтаксис
function FileGetDate(Handle: Integer) : Integer;

Описание
FileGetDate возвращает дату изменения открытого файла. Дата изменения обновляется при закрытии файла, поэтому, возможно, следует сначала закрыть файл, а затем вызвать FileAge для получения наиболее точного значения даты изменения. Функция FileGetDate возвращает -1 в случае ошибки. Дата и время файла упаковываются в битовые поля 32-битового целого. Точность соответствует двум секундам, год может принимать значения от 1980 до 2099.


Используем функцию:
function GetFileDate(TheFileName: string): string;
var FHandle: integer;
begin
FHandle := FileOpen(TheFileName, 0);
result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
FileClose(FHandle);
end;


Цитата
Одно маленькое предупреждение: время, возвращаемое Win32-функцией, отсчитывается от Гринвича, поэтому вам необходимо привести полученный результат к локальному времени. Чтобы быть уверенным, проверьте документацию.
Артем
Формат структуры TSearchRec, используемой для хранения информации о файле, таков:

Код

TSearchRec = record
 Fill: array[1..21] of Byte;
 Attr: Byte;
 Time: Longint;
 Size: Longint;
 Name: string[12];
end;


Поле Time содержит дату? если да то как её получит?
Пользуемся тегами [ code] и [ /code]
volvo
Артем
Во-первых, формат структуры TSearchRec (Delphi Help):
type 
TSearchRec = record
 Time: Integer;
 Size: Integer;
 Attr: Integer;
 Name: TFileName;
 ExcludeAttr: Integer;
 FindHandle: THandle;
 FindData: TWin32FindData;


А чтобы извлечь данные о создании файла -
Var f: TSearchRec;
...
function GetCreationTime : TDateTime;
var
 LTime : TFileTime;
 Systemtime : TSystemtime;
begin
 FileTimeToLocalFileTime( f.FindData.ftCreationTime, LTime);
 FileTimeToSystemTime( LTime, SystemTime );
 result := SystemTimeToDateTime( SystemTime);
end;


В следующий раз, если Вам нужен какой-то определенный способ извлечения информации, указывайте это сразу. Телепатов здесь нет !!!
Артем
Большое спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.