AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Rekursives durchsuchen und Letzten Dateizugriff auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursives durchsuchen und Letzten Dateizugriff auslesen

Ein Thema von AnyKey · begonnen am 15. Apr 2010 · letzter Beitrag vom 17. Apr 2010
Antwort Antwort
Seite 7 von 8   « Erste     567 8      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#61

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 16:44
Hallo,

Zitat:
Das hatte ich in #43 schon Mr. Green
So langsam verliere ich den Überblick

An den TE.
Mache mal ein neues komplettes Bsp.-Projekt,
was genau (UND NUR GENAU) den Fehler reproduziert.
Also nichts mit Pie und DB.

Als Pfad ExtractFilePath(Application.ExeName)+'\'; (das ist das Verzeichnis der Exe selber).

Das Projekt zippen und ohne Exe anhängen.


Das ist hier nur rumgestochere.

Update:
Und verballert unsere schöne kostbare Zeit.



Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#62

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 16:56
Seh ich genauso. Einfach mal einen Button nehmen, den Pfad exakt so übergeben, wie er in der DB steht und das Ganze mal in eine sichtbare Liste, sonst kommen wir nicht weiter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#63

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 17:35
Also wenn man alles richtig machen möchte, dann sollte man Events als Technik zur Rückgabe der Dateiinformationen einsetzen.
Eine normale StringList ist zu begrenzt, da man im Prinzip nur den Dateinamen bekommt und andere Informationen (Dateigrösse, Flags,...) unter den Tisch fallen.

Zunächst benötigt man einen Record zur Rückgabe der Daten:
Delphi-Quellcode:
TFileInformation = record
  Name : string;
  Path : string;
  IsDir : boolean;
  ReadOnlyFlag, HiddenFlag, SystemFlag : boolean;
  Owner : TOwner;
  Size : Int64;
  ...
end;
Bei jedem gefundenen File oder Directory werden die Infos von TSearchRec auf den "benutzerfreundlichen" Record TFileInformation kopiert und dann ein Event ausgelöst.
"Benutzerfreundlich" heisst hier, dass die Daten im Record TFileInformation so aufbereitet sind, dass man sie bequem und ohne Klimmzüge abgreifen kann.

Das Event sieht so aus:
TFileFindEvent = procedure(Sender:TObject; const FileInformation:TFileInformation) of object; Im Anhang gibt es ein Demoprojekt in dem das Konzept umgesetzt wird.
Bestimmte Dateiattribute (ReadOnlyFlag, Owner, Size nur 32-bit genau) werden z.Zt. noch nicht ausgewertet aber das lässt sich ja leicht nachholen.
Wenn jemand meinen Sourcecode benutzen möchte, dann erwarte ich als Gegenleistung dass das verbessert und auf der DP gepostet wird.

PS: leicht verbesserte Version hochgeladen
Angehängte Dateien
Dateityp: zip filescannerdemoexe_646.zip (193,6 KB, 4x aufgerufen)
Dateityp: zip filescannerdemosource_123.zip (3,8 KB, 5x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#64

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 17:39
Ehrlich gesagt verstehe ich nicht ganz, wozu der Event dienen soll (außer das Programm zu verlangsamen, wenn eine Ereignisroutine hinterlegt ist ). Ich für meinen Teil würde dann doch eher aus dem Record eine Klasse machen und diese dann per AddObject in die Stringliste schieben. Oder hab ich Dich nicht richtig verstanden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#65

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 17:55
Zitat von DeddyH:
Ehrlich gesagt verstehe ich nicht ganz, wozu der Event dienen soll (außer das Programm zu verlangsamen, wenn eine Ereignisroutine hinterlegt ist ).
Durch das Event lässt sich die Klasse TFileScanner an jedes Problem anpassen.
Man kann die Dateinamen in eine Stringliste kopieren oder man schreibt die Dateiinformationen unmittelbar und ohne Zwischenspeicher in eine Datenbank oder man schreibt sie in eine XML-Datei, usw.
Zusätzlich besteht so auch die Möglichkeit, den Vorgang vorzeitig abzubrechen (Methode Stop).

Der Aufruf eines Event pro Datei ist der (geringe) Preis den man für die universelle Einsetzbarkeit bezahlen muss.
Zitat von DeddyH:
Ich für meinen Teil würde dann doch eher aus dem Record eine Klasse machen
Hab' ich mir auch überlegt, bin dann aber zum Schluss gekommen dass ein Record im Moment ausreichend ist, weil ja nur Daten aber keine Methoden vorhanden sind.
Wäre aber trotzdem noch eine Überlegung wert.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#66

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 19:14
Ach, so war das gemeint, keine schlechte Idee. Wenn man das dann noch mit der angesprochenen Klasse verbindet, die den TSearchRec entgegennimmt und die Felder den Anforderungen entsprechend parst, wäre das glatt die Luxus-Variante
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#67

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 17. Apr 2010, 10:13
Hi,

sorry das ich mich erst jetzt wieder melde! Also ich hab die Testanwendung die ich am Anfang mal geschrieben hatte wieder rausgekramt, in der hatte ich die Funktion bevor ich sie in meine Anwendung übernommen hatte getestet, ob sie überhaupt funktioniert. Und was ist, selbst da funktioniert es nicht mehr
Das kann doch echt nicht wahr sein, ich meine ich weiß hundert %ig das es funktioniert hat, sonst hätte ich die Funktion ja nicht eingebaut und jetzt funktioniert garnichts mehr ich habe in der Testanwendung auch mal einen Breakpoint an der Stelle gesetzt, wo die Liste befüllt werden soll, er geht einfach nicht an diese Stelle, im Code von DeddyH das selbe spiel...

Ich weiß nicht mehr weiter ich habe nur eine ListBox versucht zu befüllen.

Gruß
AnyKey
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#68

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 17. Apr 2010, 10:27
Und Du bist ganz sicher, dass das Verzeichnis auch existiert?

[edit] Versuch mal das Programm im Anhang und gib Bescheid, ob es funktioniert. [/edit]
Angehängte Dateien
Dateityp: zip scandirdemo_885.zip (215,0 KB, 1x aufgerufen)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#69

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 17. Apr 2010, 11:15
Hi,

Danke für eure Hilfe, es funktioniert jetzt, vielleicht waren die Ordner mit denen ich getestet habe wirklich leer, aber ich habe mit mehreren Ordnern getestet und es ging nicht, war vielleicht doch irgendwo ein fehler bei mir im Code. Naja egal was es jetzt auch war ich Danke euch noch mal für eure Hilfe und die Zeit die ich euch geklaut habe. Selbst wenn es jetzt doch an den Ordnern lag habt ihr mir jetzt noch ein Paar elegantere Lösungen aufgezeigt, die ich dann auch umsetzen werde.

Ein Paar fragen habe ich allerdings noch:
1. In was für einer größe wird die Filesize angegeben? => damit ich weiß wie/ob ich umrechnen muss.
2. Wie ist die Datetime aufzuschlüsseln? da steht z.B. sowas wie 30067129 was davon brauche ich als Datum und was ist für mich irrelevant? Müsste das Datum dann noch anpassen, denn das andere Datum mit dem ich es vergleichen will, bekomme ich mit Punkten im Fromat TT.MM.JJJJ übergeben.

Gruß
AnyKey
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#70

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 17. Apr 2010, 11:20
Du hast die verlinkte Hilfe nicht wirklich gelesen, da steht alles drin.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 8   « Erste     567 8      


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 09:49 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