![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Время создания файла. [D5, WinXP]
Wladimir © (2002-02-15 22:38:00)Пож. помогите извлеч дату создания файла. Именно - создания, а не последнего изменения. Спасибо.
Wladimir (2002-02-17 01:07:00) [1]Фэ, я воспользовался вашей помощью и понял, что я совсем не "догада", а ведь всё оказалось очень просто.
Премного благодарен.
Wladimir (2002-02-16 18:38:00) [2]Фэ, спасибо за помощь. Клянусь, по справке искал, просто по невнимательности пытался с _FILETIMEработать как с 32bit
типом данных.
Фэ (2002-02-16 01:22:00) [3]Ведь просто не хотелось по справке искать, так ?
TSearchRec = record
Time: Integer; //Time contains the time stamp of the file.
Size: Integer; //Size contains the size of the file in bytes.
Attr: Integer; //Attr represents the file attributes of the file.
Name: TFileName; //Name contains the DOS filename and extension.
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;//FindData contains additional information such as
//file creation time, last access time, long and short filenames.
end;
//*****************
TWin32FindData= packed record
dwFileAttributes: Integer;
ftCreationTime: Int64;
ftLastAccessTime: Int64;
ftLastWriteTime: Int64;
nFileSizeHigh: Integer;
nFileSizeLow: Integer;
dwReserved0: Integer;
dwReserved1: Integer;
cFileName: array[0..259] of Char;
cAlternateFileName: array[0..13] of Char;
end;
//*****************
function FindFirstFile(FileName: PChar; var FindFileData: TWIN32FindData): Integer; stdcall;
external kernel name "FindFirstFileA";
//**********************
А вот это из sysutils - переделай под себя
function FileAge(const FileName: string): Integer;
var
Handle: THandle;
FindData: TWin32FindData;
LocalFileTime: TFileTime;
begin
Handle := FindFirstFile(PChar(FileName), FindData);
if Handle <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(Handle);
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
FileTimeToLocalFileTime( FindData.ftLastWriteTime, LocalFileTime);
if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi,
LongRec(Result).Lo) then Exit;
end;
end;
Result := -1;
end;