![]() |
Textdatei, wie Erstellt am und Name der Datei auslesen
So mein Problem ist das ich eine Textdatei habe und mein Programm soll die Daten wie Erstellt am und den namen der Datei auslesen. Und das soll möglichst einfach sein ohne viel schnick schanck einfach nur die functionen kennt die einer von euch???
|
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
Hi M4d1355,
Zitat:
Greetz alcaeus |
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
ne das weiss ich ja, aber ich will wenn ich den Dateinamen habe auslesen wann diese Datei erstelt wurde.
|
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
Hi!
Wir haben auch ein Suchfunktion :wink: :roll: ![]() Ciao Frederic |
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
damit komme ich nicht zurecht ich wollte ja nur eine einfache kurz Version haben habe versucht das für mich umzubauen hat abe rnicht geklappt
|
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
Hi M4d1355,
lies mal ![]() Greetz alcaeus |
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
Hi!
Wüsste nicht, was da allzu kompliziert ist: ![]() Aber poste doch dein konkretes Problem. Ciao Frederic |
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
Zunächst eine Funktion, die die drei Datumswerte (Erstellungsdatum, Datum der letzten Änderung und Datum des letzten Zugriffs) zurückgibt. Die Funktion gibt false zurück, wenn sie nicht erfolgreich war.
Delphi-Quellcode:
Aufrufbeispiel:
function GetFileDate(const FileName: string; out Creation, LastAccess,
LastWrite: TDateTime): Boolean; var hFile: THandle; ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime; ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime; stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime; begin result:=false; hFile := CreateFile(PChar(FileName), GENERIC_READ, 0, nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); if (hFile <> INVALID_HANDLE_VALUE) then begin try //Ermittlung des Dateidatums in UTC (Weltzeit) if GetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC) then begin //Umrechnung in Ortszeit if FileTimeToLocalFileTime(ftCreationUTC, ftCreationLocal) and FileTimeToLocalFileTime(ftLastAccessUTC, ftLastAccessLocal) and FileTimeToLocalFileTime(ftLastWriteUTC, ftLastWriteLocal) then begin //Umwandlung in Systemdatumformat if FileTimeToSystemTime(ftCreationLocal, stCreationLocal) and FileTimeToSystemTime(ftLastAccessLocal, stLastAccessLocal) and FileTimeToSystemTime(ftLastWriteLocal, stLastWriteLocal) then begin //Zuweisung der Rückgabewerte Creation := SystemTimeToDateTime(stCreationLocal); LastAccess := SystemTimeToDateTime(stLastAccessLocal); LastWrite := SystemTimeToDateTime(stLastWriteLocal); result:=true; end; end; end; finally CloseHandle(hFile); end; end; end;
Delphi-Quellcode:
In folgender Prozedur wird dargestellt, wie diese drei Daten eines Ordners oder einer Datei auch geändert werden können.
procedure TForm1.Button1Click(Sender: TObject);
var erstellung, zugriff, schreibzugriff: TDateTime; begin GetFileDate('c:\temp\test.bmp', erzeugung, zugriff, schreibzugriff); ShowMessage('Erstellung: '+DateTimeToStr(erstellung)+#13#10+'Letzter Zugriff: '+ DateTimeToStr(zugriff)+#13#10+'Letzter Schreibzugriff: '+DateTimeToStr(schreibzugriff)); end;
Delphi-Quellcode:
Hoffe ich konnt dir en bißchen weiterhelfen!? :nerd:
function ChangeFileDate(const path: string; const Creation, LastAccess,
LastWrite: TDateTime): Boolean; var hFile: THandle; ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime; ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime; stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime; begin result := false; hFile := CreateFile(PChar(path), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); if (hFile <> INVALID_HANDLE_VALUE) then try //Umwandlung von TDateTime in Systemzeitformat DateTimeToSystemTime(Creation, stCreationLocal); DateTimeToSystemTime(LastAccess, stLastAccessLocal); DateTimeToSystemTime(LastWrite, stLastWriteLocal); //Umwandlung von Systemzeitformat in lokales Dateizeitformat if (SystemTimeToFileTime(stCreationLocal, ftCreationLocal)) and (SystemTimeToFileTime(stLastAccessLocal, ftLastAccessLocal)) and (SystemTimeToFileTime(stLastWriteLocal, ftLastWriteLocal)) then begin //Umwandlung von lokalem Dateizeitformat in Weltzeit if (LocalFileTimeToFileTime(ftCreationLocal, ftCreationUTC)) and (LocalFileTimeToFileTime(ftLastAccessLocal, ftLastAccessUTC)) and (LocalFileTimeToFileTime(ftLastWriteLocal, ftLastWriteUTC)) then begin result:=SetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC); end; end; finally CloseHandle(hFile); end; end; |
Re: Textdatei, wie Erstellt am und Name der Datei auslesen
Ach so, um den Dateinamen, die -endung und den -pfad einer Datei herausfinden stellt Delphi für die grundsätzlichen Informationen eigene Funktionen bereit:
Code:
Wenn man die Elemente Laufwerk, Verzeichnisse und Dateinamen benötigt, kann auch ProcessPath weiterhelfen.
var pfad, name, ext, neuerName: string;
... pfad := ExtractFilePath(Application.ExeName); // der Pfad name := ExtractFileName(Application.ExeName); // der Name ext := ExtractFileExt(Application.ExeName); // die Dateierweiterung // Um im String die Dateierweiterung zu ändern, benutzt man folgende Funktion: neuerName := ChangeFileExt(Application.ExeName, '.tmp'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz