![]() |
AW: Fehler bei FileDateToDateTime(FileGetDate(FHandle)) wenn Dateidatum < 1980
@himitsu,
verspätete Antwort: Nein, die überladene Version von FileAge gibt es in meiner Delphiversion noch nicht. |
AW: Fehler bei FileDateToDateTime(FileGetDate(FHandle)) wenn Dateidatum < 1980
Also in meinem D2007prof gibt es die neuere überladene Version. Würde mich wundern, wenn bei Dir nicht...
Delphi-Quellcode:
Aber TDateTime bleibt sowieso auf 1899 begrenzt.
function FileAge(const FileName: string): Integer; overload; deprecated;
function FileAge(const FileName: string; out FileDateTime: TDateTime): Boolean; overload; |
AW: Fehler bei FileDateToDateTime(FileGetDate(FHandle)) wenn Dateidatum < 1980
@Satty67,
danke für den Hinweis. Ich hab's jetzt gesehen, dass das überladene FileAge direkt unter dem alten FileAge in der SysUtils steht... Ich hatte erwartet, dass NUR die alte Version oder NUR die neue Version zu finden ist und aus diesem Grunde nicht weiter gesucht...:oops: Sorry.
Delphi-Quellcode:
function FileAge(const FileName: string): Integer; overload;
{$IFDEF MSWINDOWS} var FindData: TWin32FileAttributeData; LocalFileTime: TFileTime; begin if GetFileAttributesExFunc(Pointer(Filename), GetFileExInfoStandard, @FindData) then begin if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi, LongRec(Result).Lo) then Exit; end; end; Result := -1; end; {$ENDIF} {$IFDEF LINUX} var st: TStatBuf; begin if stat(PChar(FileName), st) = 0 then Result := st.st_mtime else Result := -1; end; {$ENDIF} {$IFDEF MSWINDOWS} function FileAge(const FileName: string; out FileDateTime: TDateTime): Boolean; var FindData: TWin32FindData; LSystemTime: TSystemTime; LocalFileTime: TFileTime; begin Result := False; if GetFileAttributesExFunc(Pointer(Filename), GetFileExInfoStandard, @FindData) then begin if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin Result := True; FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); FileTimeToSystemTime(LocalFileTime, LSystemTime); with LSystemTime do FileDateTime := EncodeDate(wYear, wMonth, wDay) + EncodeTime(wHour, wMinute, wSecond, wMilliSeconds); end; end; end; {$ENDIF} |
AW: Fehler bei FileDateToDateTime(FileGetDate(FHandle)) wenn Dateidatum < 1980
Hallo Leute, ich bin gerade dabei, Dateien in einem Verzeichnis automatisch umzunennen und aufsteigend zu nummerieren. Die erste Nummer soll die Datei sein, die zuerst am letzten Tag gespeichert wurde. Also, wenn die zuletzt gespeicherte Datei das Datum "29.12.2011 12:30" hat, dann soll mit der Datei begonnen werden, die am "29.12.2011" zuerst gespeichert wurde.
Wie auch immer, dazu brauche ich das Erstellungsdatum der Datei. Leider funktioniert in Delphi 7 (XP) sowie auch in Delphi 2010 (W7) keine einzige der Methoden bzw. Funktionen die hier in diesem Forum vorgestellt wurden. Bei vielen Dateien bekomme ich immer ein anderes Datum extrahiert als das tatsächliche Erstellungsdatum. Inzwischen habe ich mein Problem mit Hilfe der ShellApi und dem DOS-Aufruf "dir *.* /o-s > myList.txt" gelöst. Schön ist das natürlich nicht, deswegen die Frage an euch, ob ihr noch eine andere Möglichkeit kennt, das Erstellungsdatum einer Datei herauszulesen. Werte Grüße Jürgen |
AW: Fehler bei FileDateToDateTime(FileGetDate(FHandle)) wenn Dateidatum < 1980
Zitat:
Auch sollte man uch Zeitzonen beachten. Einige Dateisysteme speichern die Zeitzone (inkl. Sommerzeit) und Andere machen das nicht. Einige Funktionen, zum auslesen der Zeiten, versuchen die Zeitzonen nachträglich rasuszurechnen (egal ob sie überhaupt gespeichert wurde) und Andere machen das nicht. Zitat:
Geben die ein "falsches"/anderes Datum aus, oder geben sie garkein Datum aus (also absoluten Schrott und nicht im Ansatz stimmige Werte) oder bekommst du gar Exceptions, bzw. andere Fehlercodes? Diese Werte kann man softwareseitig auch verändern, weshalb man diese Angaben nicht überbewerten sollte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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