Entwickler-Ecke

IO, XML und Registry - Festplatte durchsuchen


Skiller-1988 - Do 04.09.08 13:54
Titel: Festplatte durchsuchen
Hi,
hat ich möchte Datein auf der Festplatte suchen z.B. Bilder (also *.jpg) gibt es eine Methode im Framework die nach Datein auf der Festplatte sucht?
Oder muss ich das umstendlich für jedes Directory mit getfiles() machen?


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (.NET) verschoben am Do 04.09.2008 um 15:35


Ralf Jansen - Do 04.09.08 14:07

GetFiles (je nachdem aus welcher Klasse) durchsucht auch Subverzeichnisse ist also nicht ganz so umständlich.

Ich würde das Problem dem Indexing Service überlassen.
Es gibt einen OLE DB Provider für den Indexing Service. Darüber kannst du per SQL nach entsprechenden Dateien suchen lassen.


Skiller-1988 - Do 04.09.08 14:21

Danke erstmal ich hatte es schon mehrmals mit Getfiles() probiert allerdings habe ich immer das mit der SearchOption.AllDirectories übersehen bzw. nie angegeben.


Skiller-1988 - Do 04.09.08 14:38

Und schon ergibt sich mir ein neues Problem und zwar wenn ich C:\ mit GetFiles() durchsuchen will, bekomme ich eine Exeption:

UnauthorizedAccessExeption
Der Zugriff auf den Pfad C:\System Volume Information wurde verweigert.

Ist mir ja auch klar warum, aber wie kann ich es machen das er den Ordner auslässt bzw. nicht berücksichtigt.


AXMD - Do 04.09.08 15:23

Starte dein Programm entweder als Administrator oder implementiere die rekursive Suche nach Ordnern manuell, wobei du zusätzlich die Ordnerberechtigungen prüfen musst.

AXMD


Skiller-1988 - Do 04.09.08 15:28

ich starte mein Programm bereits als Administrator. Und manuell wäre sehr umständlich kann mann nicht irgentiwe implementieren das wenn die Exeption kommt er zum nächsten Ordner springen soll.


AXMD - Do 04.09.08 15:36

Ich hatte das selbe Problem, als ich die neue Version meines File Copiers [http://www.delphiforum.de/viewtopic.php?t=82773&highlight=file+copier] programmiert habe. Ich habe es dann wie oben beschrieben gelöst. Eine andere Lösung ist mir nicht bekannt.

AXMD


Skiller-1988 - Do 04.09.08 17:49

Ok dann werde ich wohl selbst tippen müssen :?