파일이 마지막으로 밀리 초로 수정되었을 때 파일의 타임 스탬프를 가져 오려고합니다. 현재 내가 사용하는 경우 :FileAge를 밀리 초로 가져올 수 있습니까?
FileAge(Filename);
나는 마지막으로 수정 한 날짜/시간을 초 단위로받습니다. 예 : 12:00:54. 마지막으로 수정 한 날짜와 시간을 밀리 초로 가져올 수 있습니까?
파일이 마지막으로 밀리 초로 수정되었을 때 파일의 타임 스탬프를 가져 오려고합니다. 현재 내가 사용하는 경우 :FileAge를 밀리 초로 가져올 수 있습니까?
FileAge(Filename);
나는 마지막으로 수정 한 날짜/시간을 초 단위로받습니다. 예 : 12:00:54. 마지막으로 수정 한 날짜와 시간을 밀리 초로 가져올 수 있습니까?
System.IOUtils 장치의 TFile.GetLastWriteTime
또는 TFile.GetLastWriteTimeUtc
을 사용하십시오.
시스템이 원하는 정확도를 지원하면이 기능은 해당 정확도의 날짜를 제공합니다. 물론 그것은 모두 사용중인 파일 시스템에 달려 있습니다. 이 버전은 가를 더 이상 사용되지 않습니다
function FileAge(const FileName: string): Integer;
:
이것들은'SysUtils.FileGetDateTimeInfo()'의 래퍼 일뿐입니다. 반환 된'SysUils.TDateTimeInfoRec' 레코드는 Windows에서 밀리 초 단위의 정밀도를 갖지만 다른 플랫폼에서는 초 단위의 정밀도를가집니다. –
는 FileAge()
의 두 가지 버전이 있습니다. Windows에서
, 그것은 같은 타임 스탬프를 검색 GetFileAttributesEx()
및/또는 FindFirstFile()
를 사용 FILETIME
(100 나노초 정밀도를 갖는다), 그렇지만 초을 갖는다 FileTimeToDosDateTime()
를 사용 DOS 부호화 정수로 변환한다 정도.
POSIX에서는 stat()
을 사용하며 시간 소인이 초인이 경과 한 후 반환됩니다.
function FileAge(const FileName: string; out FileDateTime: TDateTime; FollowLink: Boolean = True): Boolean;
, 그것은 사용되지 않는 버전과 동일한 타임 스탬프를 꺼냅니다하지만 FILETIME
SYSTEMTIME
A를 다음 밀리 초 정밀도를 사용하여 TDateTime
A를을 띤다.
POSIX에서는 stat()
을 사용하므로 초임입니다.
FileAge 사용? OS 파일 시스템이 밀리 초의 정확도를 유지한다고 생각하니? –
@KenWhite 파일 시스템에 따라 다릅니다 : [NTFS = 100ns, 수퍼 유저] (http://superuser.com/questions/937380/get-creation-time-of-file-in-milliseconds). [GetFileTime] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724320(v=vs.85) .aspx) API를 사용하여이 값을 얻을 수 있습니다. – GolezTrol
@GolezTrol : 예, 알고 있습니다. 그러나이 포스터는 사용중인 OS 또는 FS를 나타내지 않았습니다. –