Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Zeitstempel von Dateien ändern (https://www.delphipraxis.net/189060-zeitstempel-von-dateien-aendern.html)

GroZ 29. Apr 2016 10:18

Delphi-Version: 5

Zeitstempel von Dateien ändern
 
Hallo,

Ich habe eine kleine Funktion geschrieben um das Änderungsdatum von Dateien zu ändern. Jetzt möchte ich dass das Erstellungsdatum auch geändert wird.
Außerdem würde ich gerne wissen wie man die Zeit am besten angibt. Derzeit passiert das noch intern im Programm aber was ist wenn ich das Datum während der Laufzeit ändern möchte?
Genug geschrieben hier mein Code:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DateUtils, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function SetFileDate(const FileName: string; NewDate: TDateTime): boolean;
var FileDate, FileHandle: Integer;
begin
  Result:= false;
  FileDate:= DateTimeToFileDate(NewDate);
  FileHandle:= FileOpen(FileName, fmOpenReadWrite or fmShareDenyWrite);
   if FileHandle > 0 then
   begin
    if FileSetDate(FileHandle, FileDate)= 0 then Result:= true;
     FileClose(FileHandle);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Execute;
  if SetFileDate(OpenDialog1.FileName, EncodeDateTime(2016,4,4,15,30,0,0))
then
  ShowMessage('OK!')
else
  ShowMessage('Fehler!');
end;

end.

Uwe Raabe 29. Apr 2016 10:26

AW: Zeitstempel von Dateien ändern
 
Leider ist das weder in Delphi 5 noch in Delphi 7 bereits vorhanden, aber solltest du Zugriff auf die RTL-Sourcen einer aktuellen Delphi-Version haben, findest dort in
Delphi-Quellcode:
System.IOUtils
die Methode
Delphi-Quellcode:
TFile.SetCreationTime
.

GroZ 29. Apr 2016 10:34

AW: Zeitstempel von Dateien ändern
 
Muss ich bestimmt erst einbinden unter USES oder?
Werd es mal probieren. Danke erstmal :)

GroZ 29. Apr 2016 11:03

AW: Zeitstempel von Dateien ändern
 
Bin glaube ich zu doof aber IOUtils findet er nicht...

Uwe Raabe 29. Apr 2016 11:08

AW: Zeitstempel von Dateien ändern
 
Zitat:

Zitat von GroZ (Beitrag 1337065)
Bin glaube ich zu doof aber IOUtils findet er nicht...


Versuchst du das mit Delphi 5 oder Delphi 7? Dann lies nochmal meine Antwort:

Zitat:

Leider ist das weder in Delphi 5 noch in Delphi 7 bereits vorhanden

Luckie 29. Apr 2016 11:31

AW: Zeitstempel von Dateien ändern
 
Guck mal bei Assarbad: http://assarbad.net/en/stuff -> ftchange.zip: Filetime changer. Changes all three timestamps at once! Mit Source.

GroZ 29. Apr 2016 12:56

AW: Zeitstempel von Dateien ändern
 
Also kann ich das mit Delphi 7 nicht programmieren? Mist...
Nen fertiges Programm brauche ich eigentlich nicht. Würde das schon gerne selber machen..

Klaus01 29. Apr 2016 12:58

AW: Zeitstempel von Dateien ändern
 
.. bei ftchange sind doch die sourcen dabei..

Grüße
Klaus

Uwe Raabe 29. Apr 2016 13:07

AW: Zeitstempel von Dateien ändern
 
Zitat:

Zitat von GroZ (Beitrag 1337088)
Würde das schon gerne selber machen..

Die entsprechende Funktion heißt SetFileTime.

HolgerX 29. Apr 2016 13:23

AW: Zeitstempel von Dateien ändern
 
.. ein bischen google...

... und schon kommt das:

https://www.experts-exchange.com/que...-Delphi-7.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz