AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FileAge -- 29.12.1899???

Ein Thema von Dödel · begonnen am 20. Jul 2003 · letzter Beitrag vom 21. Jul 2003
Antwort Antwort
Dödel

Registriert seit: 30. Mai 2003
16 Beiträge
 
#1

FileAge -- 29.12.1899???

  Alt 20. Jul 2003, 22:14
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.


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]
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: FileAge -- 29.12.1899???

  Alt 20. Jul 2003, 23:31
Hallo Dödel
die Zeile muß so lauten. FileAge ist vom Typ Integer (FileDate) und muß deshalb noch in TDateTime transformiert werden.
Files.Add(SlashSep(Directory, SearchRec.Name) + ' ---- ' +DateTimeToStr(FileDateToDateTime(FileAge(SearchRec.Name))))); --> ungetestet <--
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: FileAge -- 29.12.1899???

  Alt 20. Jul 2003, 23:35
Moin Dödel,

ein Blick in die Hilfe brachte folgendes

Zitat von Delphi Hilfe zu FileAge:
Der Rückgabewert kann anschließend mit der Funktion FileDateToDateTime in ein TDateTime-Objekt konvertiert werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4

Re: FileAge -- 29.12.1899???

  Alt 21. Jul 2003, 00:03
Moin Christian,
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
  Mit Zitat antworten Zitat
Dödel

Registriert seit: 30. Mai 2003
16 Beiträge
 
#5

Re: FileAge -- 29.12.1899???

  Alt 21. Jul 2003, 03:45
Danke Duffy, dies hab ich auch gefunden - 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
  Mit Zitat antworten Zitat
Dödel

Registriert seit: 30. Mai 2003
16 Beiträge
 
#6

Re: FileAge -- 29.12.1899???

  Alt 21. Jul 2003, 03:52
Hat sich erledigt.
Hab jetzt mal den Code von Daniel eingefügt und bei dem klappt alles wunderbar.
@all: Danke für die Hilfe.


Dödel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 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