これらの属性を整数値としてファイルに取得したいと考えています。
25912 次
7 に答える
14
試す
function FileAge(const FileName: string; out FileDateTime: TDateTime): Boolean;
SysUtils から。
于 2008-09-27T21:03:12.837 に答える
13
FindFirst
デルフィアンはこのアプローチを好む傾向があります(SearchRec
構造にはそれらのいくつかがあります) が、私は Win32 API 関数 をお勧めしますGetFileAttributesEx
。
于 2008-09-27T20:59:59.973 に答える
7
DSiWin32フリーウェア ライブラリから:
function DSiFileTimeToDateTime(fileTime: TFileTime; var dateTime: TDateTime): boolean;
var
sysTime: TSystemTime;
begin
Result := FileTimeToSystemTime(fileTime, sysTime);
if Result then
dateTime := SystemTimeToDateTime(sysTime);
end; { DSiFileTimeToDateTime }
function DSiGetFileTimes(const fileName: string; var creationTime, lastAccessTime,
lastModificationTime: TDateTime): boolean;
var
fileHandle : cardinal;
fsCreationTime : TFileTime;
fsLastAccessTime : TFileTime;
fsLastModificationTime: TFileTime;
begin
Result := false;
fileHandle := CreateFile(PChar(fileName), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if fileHandle <> INVALID_HANDLE_VALUE then try
Result :=
GetFileTime(fileHandle, @fsCreationTime, @fsLastAccessTime,
@fsLastModificationTime) and
DSiFileTimeToDateTime(fsCreationTime, creationTime) and
DSiFileTimeToDateTime(fsLastAccessTime, lastAccessTime) and
DSiFileTimeToDateTime(fsLastModificationTime, lastModificationTime);
finally
CloseHandle(fileHandle);
end;
end; { DSiGetFileTimes }
于 2008-09-28T18:28:37.083 に答える
4
これは動作するはずで、ネイティブの Delphi コードです。
function GetFileModDate(filename : string) : integer;
var
F : TSearchRec;
begin
FindFirst(filename,faAnyFile,F);
Result := F.Time;
//if you wanted a TDateTime, change the return type and use this line:
//Result := FileDateToDatetime(F.Time);
FindClose(F);
end;
于 2008-09-30T16:32:19.670 に答える
2
System.IOUtils には、GetCreationTime、GetLastAccessTime、GetLastWriteTime など、ファイルの経過時間を取得するためのいくつかの関数を含む TFile レコードがあります。
于 2016-01-09T17:18:25.843 に答える
0
GetFileInformationByHandle winapi関数を呼び出すことができます。どうやらJCLにはGetFileLastWrite関数もあり、使用することもできます
于 2008-09-27T21:02:53.663 に答える