Nastavení času souboru

Klíčová slova: FindFirstFile, FindClose, CreateFile, SETFileTime, lpFindFileData, win32_Find_Data
Rubrika: Delphi
Potřebujete nastavit čas souboru např. na datum jeho vytvoření. Následující procedura SetOldFileTime to zvládne. Jako vstupní parametr ja předán pouze název souboru včetně cesty. Procedura vrací hodnotu True pokud dojde knastavení času pomocí procedury SETFileTime.
 

function SetOldFileTime(fName:string):boolean;
var
FSNameBuffer: array [0..255] of char;
fHandle : cardinal;
lpFindFileData: _win32_Find_Dataa;
begin
Result := False;
try
//Mazíní bufferu
FillChar(FSNameBuffer,SizeOf(FSNameBuffer),#0);
// Překopíruje String název do PCHar resp. Array of char
StrPCopy (FSNameBuffer,fName);
// kontrola existence souboru,
// v proměnné lpFindFileData najdete podrobné informace o nastavení atributů a časů

fHandle := FindFirstFile (FSNameBuffer,lpFindFileData);
if fHandle <> INVALID_HANDLE_VALUE then
begin
// uzavření hledání pri FindFirst
Windows.FindClose(fHandle);
// Otevření souboru pro zápis
fHandle:= CreateFile (FSNameBuffer, GENERIC_WRITE, 0, nil, OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL or FILE_ATTRIBUTE_ARCHIVE, 0);
// vlastní nastavení času a pokud se to povedlo Result := True
if SETFileTime (fHandle, @lpFindFileData.ftCreationTime , @lpFindFileData.ftCreationTime,
@lpFindFileData.ftCreationTime) then Result := True;
// uzavření souboru
CloseHandle (fHandle);
end;
except
Result := False;
end;
end;

 
 
Autor: Jiří Provazník
Datum vydání: 12.11.2002 | Zobrazeno: 2349
Permanentní odkaz: Nastavení času souboru

Komentáře (0)
Přidej vlastní komentář:
Následující (běžně neviditelná) pole slouží pro vnitřní identifikaci systému. Pokud je vyplníte nebude možné váš požadavek na straně serveru zpracovat:
URL:
contents:
Website:
Pro odeslání vašeho komentáře použijte tlačítko "Odeslat". Toto tlačítko nepoužívejte:

Následující položky je vhodné vyplnit:
Jméno :
Email :
Web :
Místo :
Hodnocení:
Hodnocení jako pomocí hvězdiček
1/5= nejhorší, 5/5=nejlepší