Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   neuste Datei in Ordner + Dateiendung (https://www.delphipraxis.net/158647-neuste-datei-ordner-dateiendung.html)

Metallicwar 24. Feb 2011 22:46

neuste Datei in Ordner + Dateiendung
 
Hallo zusammen,
ich suchte eine Funktion, die mir die aktuellste Datei aus einem Ordner anzeigt.
Ich bin in DP auch fündig geworden. Allerdings möchte ich gerne noch an diese "neuste Datei" die Dateiendung stehen haben (z.B. txt, .csv, etc)
Delphi-Quellcode:
function GetNewestFile(dir: string): string;
var
  F: TSearchRec;
  Time: Integer;
begin
  dir := IncludeTrailingPathDelimiter(dir);
  Time := 0;
  Result := '';

  if FindFirst(dir + '*.*', faAnyFile, F) = 0 then
  try
    repeat
      if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) <> faDirectory) then
      begin
        if F.Time > Time then
        begin
          Result := F.Name//+ExtractFileExt(F.Name); habe angenommen so würde es funktionieren, tut es aber nicht :)
          Time := F.Time
        end;
      end;
    until FindNext(F) <> 0;
  finally
    FindClose(F);
  end;
end;
MfG David
Freu mich über Hilfe !

Bummi 24. Feb 2011 22:59

AW: neuste Datei in Ordner + Dateiendung
 
Zitat:

TSearchRec
.......
Name enthält den Basisdateinamen sowie die Namenserweiterung.
Fehlt bei Dir wirklich die Namenserweiterung?

Matze 25. Feb 2011 05:36

AW: neuste Datei in Ordner + Dateiendung
 
Ich erhalte bei der Funktion den Dateinamen einschließlich der Dateierweiterung (sofern du das fehlende Semikolon nach
Delphi-Quellcode:
Result := F.Name
ergänzt ;) ).

Daher vermute ich, dass der Fehler wo anders liegt.
Vielleicht ein versehentlicher Aufruf wie
Delphi-Quellcode:
ExtractFileName(GetNewestFile(...))
. Sowas hatte ich mal und den Fehler in der Funktion gesucht, die jedoch tadellos funktionierte.

himitsu 25. Feb 2011 07:54

AW: neuste Datei in Ordner + Dateiendung
 
Auch bei mir waren die bisher immer vorhanden.

PS:
Zitat:

F.Name//+ExtractFileExt(F.Name); habe angenommen so würde es funktionieren, tut es aber nicht :)
Wenn in F.Name wirklich keine Dateiendung vorhanden wäre,
wo sollte denn Delphi-Referenz durchsuchenExtractFileExt diese hernehmen?

Es ist also nicht verwunderlich, daß sowas nicht funktioniert und wenn, dann wäre diese Endung nun eher doppelt vorhanden.

Metallicwar 25. Feb 2011 08:10

AW: neuste Datei in Ordner + Dateiendung
 
ooh man :( *grins*
Manchmal liegen die Fehler eben doch nicht in Delphi, wie in diesem Fall.
In dem Ordner lagen zwei unvollständige Dateien ohne Dateiformat und diese waren die neuesten :)
--> Die zwei Dateien gelöscht, schon zeigt er mir die aktuellste Datei mit Dateiendung an. :)
Danke
MfG

himitsu 25. Feb 2011 08:13

AW: neuste Datei in Ordner + Dateiendung
 
PS: Im Windows Explorer (Extras > Ordneroptionen) kann man irgendwo ein Häkchen bei "Erweiterungen bekannter Dateitypen ausblenden" wegmachen.

haentschman 25. Feb 2011 08:17

AW: neuste Datei in Ordner + Dateiendung
 
Zitat:

"Erweiterungen bekannter Dateitypen ausblenden"
...ist das erste was man auf einem System machen sollte, damit keine "Glückwunsch.pdf.exe" zur "Glückwunsch.pdf" mutiert und irgend ein Blindflieger diese öffnet. So was wird gern als Mailanhang von ganz guten Freunden verschickt 8-)

p80286 25. Feb 2011 08:51

AW: neuste Datei in Ordner + Dateiendung
 
Zitat:

Zitat von himitsu (Beitrag 1084299)
PS: Im Windows Explorer (Extras > Ordneroptionen) kann man irgendwo ein Häkchen bei "Erweiterungen bekannter Dateitypen ausblenden" wegmachen.

Das es diesen Blödsinn immer noch gibt, zeigt nur, was von Windows zu halten ist.

Gruß
K-H


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