Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: "FileSetDate" auch für Ordner?

  Alt 20. Mai 2006, 23: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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat