PDA

Vollständige Version anzeigen : Alle Dateien auflisten


GeoUser
12.07.2004, 14:10
Hallo,

ich möchte alle Dateien eines Verzeichnisses auflisten lassen, incl. der Attribute nud anderer Eigenschaften. Incl. aller Dateien sämtlicher Unterordner.

Ersteres habe ich bereits realisiert. Nur leider beschränkt sich das auf alle Dateien innerhalb des aktiven Verzeichnisses, nicht der darunterliegenden. (Netterweise teilt er mir auch die Namen der vorhandenen Unterverzeichnisse mit.)

Ich war der Meinung, dass sich das unter Visual Basic .NET relativ einfach machen lässt. (Wahrscheinlich gibt es da ne Klasse für) Aber ich kann einfach nichts passendes finden.
Hat jemand eine Lösung anzubieten?

Danke,
Martin

Noodles
13.07.2004, 13:21
Schau Dir mal die Klassen Directory, DirectoryInfo, File und FileInfo an.

GeoUser
13.07.2004, 15:01
und in eben diesen Klassen kann man ihm nicht sagen: Alle Dateien incl. sämtlicher Unterordner.
Muss man so eine Routine programmieren? Das kann ich mir gar nicht vorstellen.

trotzdem danke, für deine antwort

gruß,
Martin

Noodles
13.07.2004, 15:27
Was spricht gegen:
Directory.GetDirectories(pfad);
Directory.GetFiles(pfad); ?

Oder vestehe ich ich Dich falsch?
Was willst Du denn machen, eine Art Explorer?

GernotMelichar
14.07.2004, 19:59
Rekursive Dateisuche hatten wir schon mal:

http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=127192

Servas,

Meli

GeoUser
28.07.2004, 12:10
Hallo,

danke für die Antwort. Mit Hilfe des Beispielcodes konnte ich ein Konstruckt entwickeln, welches genau das mach, was ich will.

Ist zwar alles sehr durcheinander, aber das ist wohl bei allen Anfängern so... *grins.
Hauptsache funktioniert.

Andere Frage: Wie kommt es das beispielsweise meine Software 148 Dateien zählt, Windows aber 726? (Rechte Maustaste auf den Ordner, Eigenschaften -> Dateienanzahl)

Ich hab das händisch gecheckt, und die Dateien die in meiner Liste stehen, sind auch in den Ordnern, sonst keine.

Zählt Windows irgendwie anders?

Noodles
28.07.2004, 12:27
Sind in dem Ordner nur Dateien oder auch noch Unterordner?
Windows zählt auch von jedem Unterordner die Dateien.

GeoUser
28.07.2004, 12:32
Mein Progrämmchen listet alle Dateien, alle Unterordner und deren Dateien auf.

Ein Kollege hat mich auf was hingewiesen. Windows behandelt ZIP Files auch als Ordner und zählt die Dateien mit. Und mein Ordner hat viele ZIP Dateien. Könnte ne Erklärung sein.

Noodles
28.07.2004, 12:41
Ich habe einen Ordner mit 14 Zip-Files und da werdem mir in den Eigenschaften auch nur 14 Dateien angezeigt. Also bei mir (Win XP) werden Zip's nicht wie Ordner behandelt.

GeoUser
28.07.2004, 12:45
Schade, dann kann es das wohl nicht sein. Wenn ich mir einen kleinen Ordner vornehme, dann ist das auch so.
Aber wenn es ein großer Ordner ist wie C:\Programme, oder das Laufwerk D:\ dann kommt der teilweise erhebliche Unterschied zutage.

Vielleicht muss ich mal beim Programmaufruf kontrollieren, was alles aufgelistet wird.

GernotMelichar
28.07.2004, 17:00
Wie zählst Du die Dateien in deinem Programm?
Wenn Du eine Zähler-Variable benutzt,dann schau Dir an wo
Du sie in deinem Programm deklariert bzw. initialisiert hast.
Wenn die Variable innerhalb der Prozedur dateisuche deklariert wird, würde sie bei jedem neuen Unterverzeichnis zurückgesetzt.

Ist jetzt nur mal so ne Idee!

Meli

GeoUser
29.07.2004, 14:12
Hallo,

auch nicht schlecht. Aber jede gefundene Datei erzeugt einen Eintrag in eine Textdatei, sodass man unabhängig von variablen Werten die gesamtzahl aller Einträge ermitteln kann.

Zum Beispiel in dem man das .txt File in Excel importiert und nach den Zeilennummern guckt.

Trotzdem kann ich ja mal nachvollziehen, ob er wirklich alle Dateien aufzählt. Wird ne ziemlich dämliche Aufgabe, aber was solls.

Andere Frage, Hast Du ne Ahnung wie man den "owner" einer Datei ermitteln kann?
Bisher habe ich noch keine adequate Lösung dafür.

gruß,
Martin

GernotMelichar
29.07.2004, 17:09
Hier ist ein Beispiel:

http://www.dotnet247.com/247reference/msgs/21/108780.aspx

Scheinbar gibt`s noch keine eigene Klasse dafür im Framwork, du mußt
auf die Windows API zurückgreifen.

Meli