Thema: Delphi Dateidatum setzen

Einzelnen Beitrag anzeigen

API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#1

Dateidatum setzen

  Alt 27. Aug 2009, 05:56
Hi,

Eine Textdatei soll geändert werden, ohne dass das Dateidatum geändert wird (primär LastWriteTime)
Die Datei wird geladen, das Dateidatum ausgelesen, die Datei wird geändert (durch den User) und danach wieder gespeichert und
das alte Dateidatum gesetzt.

Leider wird das alte Dateidatum nicht wieder gesetzt. Woran könntest das liegen?

Delphi-Quellcode:
private
  FCurFile: string;
  FModifiedDateTime : TDateTime;
  FCreationTime : FileTime;
  FLastAccessTime : FileTime;
  FLastWriteTime : FileTime;
Delphi-Quellcode:
procedure GetFileDateTime(const TheFile: string; var fCreationTime, fLastAccessTime, fLastWriteTime: FileTime);
var
  fh : THandle;
begin
  fh := FileOpen(TheFile, fmOpenRead);
  GetFileTime(fh, @fCreationTime, @fLastAccessTime, @fLastWriteTime);
  CloseHandle(fh);
end;

procedure SetFileDateTime(const TheFile: string; fCreationTime, fLastAccessTime, fLastWriteTime: FileTime);
var
  fh : THandle;
  fn : string;
begin
  fh := FileOpen(TheFile, fmOpenRead);
  SetFileTime(fh, @fCreationTime, @fLastAccessTime, @fLastWriteTime);
  CloseHandle(fh);
end;

// Datei Laden und FileDateTime auslesen
procedure TForm1.FileListBox1Click(Sender: TObject);
begin
  FCurFile := FileListBox1.Items[FileListBox1.ItemIndex];
  Memo1.Lines.LoadFromFile(FCurFile);
  GetFileDateTime(FCurFile, fCreationTime, fLastAccessTime, fLastWriteTime);
end;

// Datei speichern und altes FileDateTime setzen
procedure TForm1.btnSaveClick(Sender: TObject);
begin
  if FCurFile <> 'then
  begin
    Memo.Lines.SaveToFile(FCurFile);
    SetFileDateTime(FCurFile, fCreationTime, fLastAccessTime, fLastWriteTime);
  end;
end;
  Mit Zitat antworten Zitat