AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Suche eine Funktion, die mir alle Dateiinfos zurückgibt
Thema durchsuchen
Ansicht
Themen-Optionen

Suche eine Funktion, die mir alle Dateiinfos zurückgibt

Ein Thema von Alallart · begonnen am 1. Jul 2025 · letzter Beitrag vom 1. Jul 2025
Antwort Antwort
Alallart

Registriert seit: 8. Dez 2015
169 Beiträge
 
#1

Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 11:28
Ich habe kein Problem Code zu schreiben, der mir zb zu einer Datei die Dateigröße, Dateityp, Attribute, Erstelldatum, Änderungsdatum, letzter Zugriff usw. zurückgibt. Allerdings sind das immer einzelne Abfragen, und jede Abfrage kostet Zeit. Nach meinem Verständnis muss ich achtmal auf eine Datei zugreifen, wenn ich acht Angaben brauche. Deshalb meine Frage: gibt es eine Funktion die mir zb in einem Record alle Infos in einem Schritt/Zugriff zurückgibt?
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.719 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 11:33
FindFirst liefert im TSearchRec Parameter fast alles, was Du haben willst. Danach nicht vergessen, das Handle zu schließen.
Thomas Mueller
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
169 Beiträge
 
#3

AW: Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 12:01
Danke, ich kenne zwar TSearchRec, hatte aber im Kopf, dass einige Daten unbrauchbar sind (zb Dateigröße). Habe vergessen, dass es da noch TWin32FindData gibt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.476 Beiträge
 
Delphi 12 Athens
 
#4

AW: Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 12:37
Es gibt auch irgendein TDirectory.GetFiles (anderer Name), welches ein TArray<TSearchRec> zurück gibt, wenn ich mich nicht irre.
Oder man nutzt TDirectory.GetFiles mit einem FilterPredicate, wo man, während der Suche, Zugriff darauf bekommt.

FilterPredicate:
Man muß sein Suchergebnis ja nicht im Result speichern lassen, sondern kann es auch in einem externen Array/Liste/Dictionary speichern, mit ALLEM, was man haben möchte.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Jul 2025 um 12:48 Uhr)
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
169 Beiträge
 
#5

AW: Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 18:09
Wo ist hier der Fehler?

Delphi-Quellcode:
type
  TFileInfo = record
    FileName: string;
    FileSize: Int64;
  end;



function GetFileInfo(const FilePath: string): TFileInfo;
var
  FileInfo: TFileInfo;
  FileHandle: THandle;
  FindData: TWin32FindData;
  SystemTime: TSystemTime;
begin
  FillChar(FileInfo, SizeOf(TFileInfo), 0);

  FileInfo.FileName := ExtractFileName(FilePath);

  FileHandle := FindFirstFile(PChar(FilePath), FindData);
  if FileHandle <> INVALID_HANDLE_VALUE then
  try
    FileInfo.FileSize := (Int64(FindData.nFileSizeHigh) shl 32) + FindData.nFileSizeLow;
  finally
    FindClose(FileHandle); //<<<<<< Hier Fehlermeldung (Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen)
  end;

  Result := FileInfo;
end;
Das habe ich aus einem anderen Programm von mir kopiert, das ich schon vor Jahren erstellt habe. In dem anderen Programm gibt es keine Probleme, hier kommt die Meldung.

Auf jeden Fall sehe ich auf die Schnelle das Problem nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.720 Beiträge
 
Delphi 12 Athens
 
#6

AW: Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 18:18
Es gibt ein FindClose in System.SysUtils und eins in Winapi.Windows. Je nachdem wie die uses-Anweisung ist, findet der Compiler das zuletzt deklarierte.

Lösung: Winapi.Windows.FindClose(FileHandle) schreiben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
169 Beiträge
 
#7

AW: Suche eine Funktion, die mir alle Dateiinfos zurückgibt

  Alt 1. Jul 2025, 18:26
Das war es. Danke. Hätte mir eigentlich auch selbst einfallen können.
  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:43 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