Alle Dateien auf PC mit Pfad auflisten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    Als Array macht das imho wenig Sinn. Ich würde mir wohl eine Klasse anlegen, die Childs und Parents von dieser in Form einer Property enthält und dann die Pfade in einer Hierarchie anordnen, wie es ja auch im Dateisystem der Fall ist.

    Aber gut, ich weiß ja nicht, wofür Du das benötigst. Auf jeden Fall ist für Dich der System.IO-Namespace relevant.
    Übrigens wäre es gut, Fragen in Zukunft besser und genauer zu beschreiben.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Alle Dateien auflisten wird nicht funktionieren.
    Ich hatte schon das Problem, dass selbst die Dateisuche mit Unterordnern auf C nicht funktioniert und auf nen Error läuft und dies wohl unabwendbar! weil er Probleme mit der Berechtigung bekommt.
    Also wird alle Dateien auflisten kaum möglich sein.
    Die Frage ist, warum du überhaupt nen Array haben willst?
    Die DirectoryInfo-Klasse ist hier unglaublich mächtig. Dort hast du alles drin was du brauchst. Die Frage ist, was willst du damit machen.
    Alle Dateien anzeigen wird wohl unweigerlich zu nem exorbitant trägem Control führen, was überladen wird und mit den Daten garnicht mehr zurecht kommt.
    Wenn du etwas abarbeiten willst, reicht die Liste der gefundenen Dateien die DirectoryInfo dir rauswirft.
    Genauere Infos wären fein.
    Zumal ein "Array" in so ner Dimension (größentechnisch) schon unpassend ist. Wie willst das denn initialisieren? Also mit welcher Größe?

    In Sachen Darstellung von gefundenen Dateien. Tu dir mal nen Spaß an.
    Leg dir auf eine Form ein DataGridView (um es zu vereinfachen und damit der Code von unten klappt gehe ich mal vom Namen DataGridView1 aus)
    und leg dir ne ListBox auf die Form (auch hier einfach mal mit ListBox1 als Name).
    Dann noch ne TextBox (hier auch TextBox1 als Name) und nen Button.

    Folgenden Code in den Button Click:

    VB.NET-Quellcode

    1. If Not System.IO.Directory.Exists(TextBox1.Text) Then Return
    2. DataGridView1.DataSource = New System.IO.DirectoryInfo(TextBox1.Text).GetFiles("*", System.IO.SearchOption.AllDirectories)
    3. DataGridView1.RowHeadersVisible = False
    4. ListBox1.DataSource = DataGridView1.DataSource

    Nun das Programm starten...
    Dann gibst in die Textbox zB. C:\Temp ein und klickst aufm Button. Und nun achte mal drauf was passiert, wenn du im DGV oder der ListBox was anklickst. Also was mit dem jeweils anderen Control passiert.
    Dann erweiter den Code im Click mal um:

    VB.NET-Quellcode

    1. ​For Each _file In New System.IO.DirectoryInfo(TextBox1.Text).GetFiles("*", System.IO.SearchOption.AllDirectories)
    2. MessageBox.Show(_file.Name)
    3. Return 'return bricht nach der ersten gefundenen Datei ab, sonst hälst dich am klicken.
    4. Next

    Und nun weißt du auch wie du alle Dateinamen bekommst.

    Die erweiterte Variante wäre dann, dass du ganz am Anfang der Klasse (genauer gesagt noch vor ihr, also vor dem Public Class Form1) einmal

    VB.NET-Quellcode

    1. ​Imports System.IO

    schreibst. Dann kannst es im Folgenden weglassen.
    Sprich aus System.IO.DirectoryInfo wir einfach DirectoryInfo und aus System.IO.SearchOption.AllDirectories wird SearchOption.AllDirectories usw.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    ThePlexian schrieb:

    Ironie beiseite, woran scheiterts ?

    f104004 schrieb:

    An meinem Wissen.
    Ich würd sagen, es scheitert an deiner Fragestellung.
    Wenn du nicht mit mehr rausrückst, als dass es an deinem Wissen scheitert, dann kann man dir nur raten: "Erwirb Wissen!"

    Also im Ernst:
    Alle Dateien als Array ist schoma nichts sinnvolles. Was willst du mit dem Array machen?
    Eine Datei erstellen?