Форум «Всё о Паскале» _ Делфи _ Подскажите функцию извлечения даты создания файла
Автор: Артем 25.01.2005 15:52
Подскажите функцию извлечения даты создания файла
Автор: volvo 25.01.2005 16:23
Цитата
Синтаксис 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-функцией, отсчитывается от Гринвича, поэтому вам необходимо привести полученный результат к локальному времени. Чтобы быть уверенным, проверьте документацию.
Автор: Артем 25.01.2005 16:28
Формат структуры TSearchRec, используемой для хранения информации о файле, таков:
Код
TSearchRec = record Fill: array[1..21] of Byte; Attr: Byte; Time: Longint; Size: Longint; Name: string[12]; end;
Поле Time содержит дату? если да то как её получит? Пользуемся тегами [ code] и [ /code]
Автор: volvo 25.01.2005 16:38
Артем Во-первых, формат структуры 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;
В следующий раз, если Вам нужен какой-то определенный способ извлечения информации, указывайте это сразу. Телепатов здесь нет !!!