Получить или установить дату для директории

Советы » Каталоги » Получить или установить дату для директории

function

GetFolderDate(Folder: string

): TDateTime; var

Rec: TSearchRec; Found: Integer; Date: TDateTime; begin

if

Folder[Length(folder)] = '' then

Delete(Folder, Length(folder), 1); Result := 0; Found := FindFirst(Folder, faDirectory, Rec); try

if

Found = 0 then

begin

Date := FileDateToDateTime(Rec.Time); Result := Date; end

; finally

FindClose(Rec); end

; end

; procedure

TForm1.Button1Click(Sender: TObject); var

d: TDateTime; begin

d := GetFolderDate('C:WINNT'); ShowMessage(FormatDateTime('dddd, d. mmmm yyyy, hh:mm:ss', d)); end

; { Sets the time for both files and directories } { for NT } function

NT_SetDateTime(FileName: string

; dtCreation, dtLastAccessTime, dtLastWriteTime: TDateTime): Boolean; // by Nicholas Robinson var

hDir: THandle; ftCreation: TFiletime; ftLastAccessTime: TFiletime; ftLastWriteTime: TFiletime; function

DTtoFT(dt: TDateTime): TFiletime; var

dwft: DWORD; ft: TFiletime; begin

dwft := DateTimeToFileDate(dt); DosDateTimeToFileTime(LongRec(dwft).Hi, LongRec(dwft).Lo, ft); LocalFileTimeToFileTime(ft, Result); end

; begin

hDir := CreateFile(PChar(FileName), GENERIC_READ or

GENERIC_WRITE, 0, nil

, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); if

hDir <> INVALID_HANDLE_VALUE then

begin

try

ftCreation := DTtoFT(dtCreation); ftLastAccessTime := DTtoFT(dtLastAccessTime); ftLastWriteTime := DTtoFT(dtLastWriteTime); Result := SetFileTime(hDir, @ftCreation, @ftLastAccessTime, @ftLastWriteTime); finally

CloseHandle(hDir); end

; end

else

Result := False; end

; procedure

TForm1.Button2Click(Sender: TObject); begin

NT_SetDateTime('c: empMyFolder', now, now, now); end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2023 - All Rights Reserved - www.delphirus.com