none
Ordner und Dateien auslesen (ListView RRS feed

  • Frage

  • hi,

    ich möchte aus einem bestimmten Ordner, weitere Ordner und Datei über einen TreeView auslesen lassen. WICHTIG: Der auszulesene Ordner, und die .exe, auf dem der TreeView ist, sind auf einem USB-Stick.

    Danke euch vielmals

    Fabian

    Mittwoch, 12. Mai 2010 12:30

Antworten

Alle Antworten

  • Hallo Fabian,
    ich möchte aus einem bestimmten Ordner, weitere Ordner und Datei über einen TreeView auslesen lassen. WICHTIG: Der auszulesene Ordner, und die .exe, auf dem der TreeView ist, sind auf einem USB-Stick.

    wichtig für dich wäre Directory.GetFiles und Directory.GetDirectories bzw. Directory.EnumerateFiles und Directory.EnumerateDirectories . Mit letzte

    Ein Beispiel für eine rekursive Suche anderer Art findest Du bspw. hier:

    http://dotnetperls.com/recursively-find-files

    (Ob die jetzt wirklich schneller ist, habe ich nicht ausprobiert).

    Über ein Treeview Control selbst kannst Du nichts auslesen, das musst Du schon selbst erledigen. Das Treeview Control kann dir die Ordner und Dateien dann anzeigen.

    Ob es wichtig ist, dass die Dateien auf einem USB Stick liegen, weiß ich nicht. Ich denke aber, wenn Windows dem Ding nen Laufwerksbuchstaben verpasst oder der Stick über einen UNC Pfad ansprechbar ist, sollte das Framework damit keine Probleme haben.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 12. Mai 2010 14:50
    Moderator
  • Hallo Fabian,

    eine kleine Ergänzung zu Stefans Antwort:
    Unter GetFiles mit Subdirectories liefert keine Werte hatte ich eine
    rekursive Suche nach Dateien mit Mustern gezeigt.

    Daraus kannst Du Dir einen TreeView erzeugen. Wobei man bei langsameren
    Datenträgern - USB Sticks gehören häufig dazu - untergeordnete Verzeichnisse
    nur bei Bedarf einlesen sollte.

    Ein komplexeres Beispiel findest Du u. a. bei Codeproject
    An All VB.NET Explorer Tree Control with ImageList Management

    Gruß Elmar

    Mittwoch, 12. Mai 2010 15:24
  • Hallo Fabian,

    geht es dir um:
    1: Die Darstellung im TreeView
    2: Das Ermitteln der Daten aus einem Verzeichnis oder
    3: den USB-Stick als Datenquelle?

    Zu 1 hast du schon Antworten

    Zu 2 hier ein Code, der dir erst mal die Daten eine Verzeichnis X in einer ListBox (hier Liste genannt) liefert

    Imports System.IO
    
    Public Class Form1
     Private Sub Button1_Click(ByVal sender As System.Object, _
                  ByVal e As System.EventArgs _
                     ) Handles Button1.Click
    
      'Verzeichnis auslesen und an Listbox bergeben
      'Definieren von Pfad und Dateiname des Quellverzeichnisses
      Dim DirectoryOfSource As String = Me.TextBox1.Text
    
      'Ermittelt nur den Pfad des Verzeichnisses in dem die Standortfiles gespeichert werden
      Dim Locations As String = (Path.GetDirectoryName(DirectoryOfSource))
    
      'Hier werden die Varaiablen fr die Ausgabe der Dateinamen deklariert
      Dim daten() As String
      Dim x As Integer
    
      'daten = Directory.GetFiles(Locations) 'Ermittelt Dateien
    
      daten = Directory.GetDirectories(Locations)
    
      ' Ermittelt Verzeichnisse
      Me.Liste.Items.Clear()
      For x = 0 To daten.Count - 1
       Me.Liste.Items.Add(Path.GetFileNameWithoutExtension(daten(x))) 'ohne Pfad
      Next
     End Sub
    End Class
    wobei der Pfad oder das Verzeichnis hier erst mal in einer TextBox eingegeben wird.

    Was den USB-Stick angeht weiß ich nicht wie du das ggf. eindeutig zuordnen möchtest oder ob das gar nicht erforderlich ist.
    Denkbar wäre hier z.B., dass du erst mal den PC grundsätzlich auf die vorhandenen Laufwerke prüfst, dann das entsprechende auswählst und so die "Quelle" bestimmst.

     

     


    Liebe Grüße Stefan
    Mittwoch, 12. Mai 2010 17:26
  • Hallo Fabian,

    ich gehe davon aus, dass Dir die Antworten weitergeholfen haben.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Sonntag, 6. Juni 2010 21:04
  • Hoi FreuNde,

    ich greife den Faden mal wieder auf:

    beim mir kommt eine Fehlermeldung im letzten Bereich des zuletzt geposteten Codes:

    Fehler: Der Wert darf nicht NULL sein. Parametername: path

    Code: daten = Directory.GetDirectories(Locations)

    Woran kann das liegen ? Ich habe hardcodiert E:\ als Dectory eingetragen, auch i


    Be a good forum member - mark posts that contain the answers to your questions or those that are helpful

    Dienstag, 6. März 2012 14:12
  • Hi,

    ich greife den Faden mal wieder auf:

    es ist sinnvoller, einen neuen Thread zu eröffnen und ggfs. auf den alten Thread zu verlinken.

    beim mir kommt eine Fehlermeldung im letzten Bereich des zuletzt geposteten Codes:
    Fehler: Der Wert darf nicht NULL sein. Parametername: path

    Code: daten = Directory.GetDirectories(Locations)

    Woran kann das liegen ? Ich habe hardcodiert E:\ als Dectory eingetragen, auch

    Wo? Was ist hartcodiert? Schau mal, da findest Du ein vollständiges Beispiel.

      http://msdn.microsoft.com/de-de/library/c1sez4sc.aspx

    Probier es mal bitte damit. Wenn das auch nicht geht (was ich mir nicht vorstellen kann), meld dich bitte wieder hier und poste mal ein komplettes Beispiel, mit dem man das Problem nachvollziehen kann.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort vorgeschlagen Trixi-N Mittwoch, 14. März 2012 20:10
    Dienstag, 6. März 2012 17:49
    Moderator
  • Hoi Stefan,

    mit "hardcodiert" meinte ich, das das Laufwerk fest vorgegeben ist im Programm ;-)

    Hatte den Fehler aber gefunden, lag am "\" am Ende des Pfades.

    Doei
    Franz


    Be a good forum member - mark posts that contain the answers to your questions or those that are helpful

    Mittwoch, 14. März 2012 20:10