Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FileAge -- 29.12.1899??? (https://www.delphipraxis.net/6743-fileage-29-12-1899-a.html)

Dödel 20. Jul 2003 22:14


FileAge -- 29.12.1899???
 
Delphi-Quellcode:
procedure GetFiles(const Directory: string; Files: TStrings;
const FileMask: string = '*.*'; const SubFolders: Boolean = True);

//Hilfsfunktion, um Schrägstriche hinzuzfügen, wenn nötig
function SlashSep(const Path, S: string): string;
begin
if AnsiLastChar(Path)^ <> '\' then Result := Path + '\' + S
else Result := Path + S;
end;

var SearchRec: TSearchRec;
nStatus: Integer;
begin
//Zuerst alle Dateien im aktuelle Verzeichnis finden

if FindFirst(SlashSep(Directory, FileMask), faAnyFile-faDirectory-faVolumeID,
SearchRec) = 0 then
begin
try
repeat
Files.Add(SlashSep(Directory, SearchRec.Name + ' ---- ' +DateTimeToStr(FileAge(SearchRec.Name)))); /////// Hier liegt das Problem  :firejump: :?: :!:
until FindNext(SearchRec) <> 0;
finally
SysUtils.FindClose(SearchRec);
end;
end;

//Als nächstes nach Unterverzeichnissen suchen und, wenn benötigt, durchsuchen
if SubFolders then
begin
if FindFirst(SlashSep(Directory,'*.*'), faAnyFile, SearchRec) = 0 then
begin
try
repeat
//Wenn es ein Verzeichnis ist, Rekursion verwenden
if (SearchRec.Attr and faDirectory) <> 0 then
begin
if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
GetFiles(SlashSep(Directory, SearchRec.Name), Files, FileMask, SubFolders);
end;
until FindNext(SearchRec) <> 0;
finally
SysUtils.FindClose(SearchRec);
end;
end;
end;

end;


-----------------



Ich hab ein Problm, wenn ich diesen Code, ohne der Zeile (s. Dies ist mein Problem) hinter dem '----', klappt noch alles, doch wenn ich den restlichen Code, der in der Zeile steht, einbinde erscheint in der Datei, die anschließend aus einer Listbox gespeichert wird IMMER 29.12.1899.
Wo liegt mein Fehler. Ich bin am verzweifeln. :freak:


Dödel

Zur Erklärung: Es soll das FileAge (letzte Änderung der Datei) hinter dem Pfad+Dateiname stehen. Z.B. D:/Dödel.txt ---- 20.07.2003

[edit=thomasdrewermann] Source-Tags eingefügt Mfg, thomasdrewermann[/edit]

Duffy 20. Jul 2003 23:31

Re: FileAge -- 29.12.1899???
 
Hallo Dödel
die Zeile muß so lauten. FileAge ist vom Typ Integer (FileDate) und muß deshalb noch in TDateTime transformiert werden.
Delphi-Quellcode:
Files.Add(SlashSep(Directory, SearchRec.Name) + ' ---- ' +DateTimeToStr(FileDateToDateTime(FileAge(SearchRec.Name)))));
--> ungetestet <--
bye

Christian Seehase 20. Jul 2003 23:35

Re: FileAge -- 29.12.1899???
 
Moin Dödel,

ein Blick in die Hilfe brachte folgendes

Zitat:

Zitat von Delphi Hilfe zu FileAge
Der Rückgabewert kann anschließend mit der Funktion FileDateToDateTime in ein TDateTime-Objekt konvertiert werden.


Daniel B 21. Jul 2003 00:03

Re: FileAge -- 29.12.1899???
 
Moin Christian,
Zitat:

Zitat von Christian Seehase
ein Blick in die Hilfe brachte folgendes

Hmm, das ist schonmal wahr, aber ein zweiter Blick hätte gebracht, das der ganze Pfad der Datei für FileAge nicht vorhanden ist.
Müsste also so heissen:
Delphi-Quellcode:
      repeat
        Files.Add(SlashSep(Directory, SearchRec.Name) + ' ---- ' +
          DateTimeToStr(FileDateToDateTime(FileAge(SlashSep(
            Directory, SearchRec.Name)))));
      until
Grüsse, Daniel :hi:

Dödel 21. Jul 2003 03:45

Re: FileAge -- 29.12.1899???
 
Danke Duffy, dies hab ich auch gefunden :lol: - In einem Beitrag vor ein paar Tagen in diesem Forum, doch wenn ich das per Copy&Paste übernehm', was du gepostet hast, erscheint folgende Fehlermeldung:


Zitat:

Project Project1.exe raised exception class EConverter with message "Invalid argument to date encode". Process stopped. Use Step or run to continue.
Irgendwie will mein System nicht zwei Umformungen hintereinander durchführen. Sowas is mir schon häufiger passiert. (Ich benutze WinXP)

Dödel

Dödel 21. Jul 2003 03:52

Re: FileAge -- 29.12.1899???
 
Hat sich erledigt.
Hab jetzt mal den Code von Daniel eingefügt und bei dem klappt alles wunderbar. :hello:
@all: Danke für die Hilfe. :coder:


Dödel


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 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