Einzelnen Beitrag anzeigen

Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
203 Beiträge
 
Delphi 3 Professional
 
#1

wie: Uhrzeit von Verzeichnissen ändern ?

  Alt 8. Jan 2007, 12:06
gibts auch was, um die Uhrzeit zu ändern?

hatte mal diesen Code gefunden, aber das funktioniert irgendwie nicht

Delphi-Quellcode:
function SetFileTimes(FileName: string;
  const Created: TDateTime;
  const Modified: TDateTime;
  const Accessed: TDateTime): Boolean;
var
  FileHandle: Integer;
  FTime, FTimeC, FTimeA, FTimeM: TFileTime;
  STime: TSystemTime;
  TimeFlag: Integer;
begin
  TimeFlag := 0;

  Result := False;

  ZeroMemory(@FTime, SizeOf(FTime));
  ZeroMemory(@FTime, SizeOf(FTimeC));
  ZeroMemory(@FTime, SizeOf(FTimeM));
  ZeroMemory(@FTime, SizeOf(FTimeA));

  // Created
  if Created > 0 then
  begin
    DateTimeToSystemTime(Created, STime);
    SystemTimeToFileTime(STime, FTime);
    LocalFileTimeToFileTime(FTime, FTimeC);
    Inc(TimeFlag, 1);
  end;

  // Accessed
  if Accessed > 0 then
  begin
    DateTimeToSystemTime(Accessed, STime);
    SystemTimeToFileTime(STime, FTime);
    LocalFileTimeToFileTime(FTime, FTimeA);
    Inc(TimeFlag, 2);
  end;

  // Modified
  if Modified > 0 then
  begin
    DateTimeToSystemTime(Modified, STime);
    SystemTimeToFileTime(STime, FTime);
    LocalFileTimeToFileTime(FTime, FTimeM);
    Inc(TimeFlag, 4);
  end;

  if TimeFlag = 0 then
  begin
    Exit; // Nothing to do
  end;

  // Get a File Handle
  FileHandle := FileOpen(FileName, fmOpenReadWrite + fmShareExclusive);
  if FileHandle < 0 then
  begin
    Exit;
  end;

/////////////////////////////
/// Aufruf
////////////////////////
procedure TForm1.Button3Click(Sender: TObject);
var wfn: string;
  d: Tsearchrec;
  FT: TFiletime;
  ST: TSYSTEMTIME;
  DT: TDateTime;
  I, H: Integer;
begin
  if Edit1.Text = 'then Exit: // kein Pfad angegeben
    DT := Now; // 35065 = 1.1.1996 0 Uhr;
  DecodeTime(DT, ST.wHour, ST.wMinute, ST.wSecond, St.wMilliseconds);
  DecodeDate(DT, ST.wYear, ST.wMonth, ST.wDay);
  SystemTimeToFileTime(ST, ft);

  h := FileOpen(Edit1.Text, fmopenwrite);
  SetFileTime(h, @ft, @ft, @ft);
  FileClose(h);
end;
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat