Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#2

Re: "FileSetDate" auch für Ordner?

  Alt 20. Mai 2006, 22:22
Delphi-Quellcode:
Function SetFileAge(Const FileName: AnsiString; Age: TFileTime): Boolean;
  Var F: THandle;

  Begin
    Result := False;
    F := CreateFileA(PAnsiChar(FileName), GENERIC_WRITE,
      FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_EXISTING, 0, 0);
    If F = INVALID_HANDLE_VALUE Then Exit;
    {CreateTime}     Result := SetFileTime(F, @Age, nil, nil);
    {LastAccessTime} Result := SetFileTime(F, nil, @Age, nil);
    {LastWriteTime}  Result := SetFileTime(F, nil, nil, @Age);
    CloseHandle(F);
  End;
Ich hoff ich hab's richtig übersetzt ... der Funktion kannst du Dateien, oder Verzeíchnisse (ohne ein abschliesendes "\") übergeben.

Du mußt dir nur noch raussuchen welche Zeit du ändern willst ... einfach 2 von den 3 Zeilen in der Mitte (die mit {...} am Anfang) rauslöschen

[add]
oder einfach so
Delphi-Quellcode:
Function SetFileAge(Const FileName: AnsiString; Age: Integer): Boolean;
  Var F: THandle;

  Begin
    Result := False;
    F := CreateFileA(PAnsiChar(FileName), GENERIC_WRITE,
      FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_EXISTING, 0, 0);
    If F = INVALID_HANDLE_VALUE Then Exit;
    Result := FileSetDate(F, Age) = 0;
    CloseHandle(F);
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat