Benutzer mit den meisten Antworten
Ordner und Dateien auslesen (ListView

Frage
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- Als Antwort vorgeschlagen Stefan FalzModerator Montag, 17. Mai 2010 13:33
- Als Antwort markiert Thorsten Dörfler Sonntag, 6. Juni 2010 21:02
-
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 ManagementGruß Elmar
- Als Antwort vorgeschlagen Stefan FalzModerator Montag, 17. Mai 2010 13:33
- Als Antwort markiert Thorsten Dörfler Sonntag, 6. Juni 2010 21:03
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- Als Antwort vorgeschlagen Stefan FalzModerator Montag, 17. Mai 2010 13:33
- Als Antwort markiert Thorsten Dörfler Sonntag, 6. Juni 2010 21:02
-
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 ManagementGruß Elmar
- Als Antwort vorgeschlagen Stefan FalzModerator Montag, 17. Mai 2010 13:33
- Als Antwort markiert Thorsten Dörfler Sonntag, 6. Juni 2010 21:03
-
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- Bearbeitet Thorsten Dörfler Sonntag, 6. Juni 2010 21:02 Sourcecode Formatierung
-
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
-
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: pathCode: 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
-
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
FranzBe a good forum member - mark posts that contain the answers to your questions or those that are helpful