Pfadangabe aller Ordner und Dateien in *.txt schreiben?

Deletemaster

Erfahrenes Mitglied
Hallo zusammen,
ich möchte folgendes Programm entwickeln und benötige dabei Hilfe:
G:\Verzeichnis_1\Verzeichnis_2\Dateiname.mp3
soll in eine Textdatei geschrieben werden !
Wie kann ich mir mit "DirectoryInfo", "FileInfo" den kompletten Pfad ALLER DATEIEN im Verzeichnis_2 in einer "ListBox" anzeigen lassen, und anschliessend in eine Textdatei schreiben?
(Aus der Textdatei möchte ich später die Daten in eine DB exportieren, evtl. noch "verlinken")
Ich würde mich freuen, wenn ihr mir einige Hinweise geben könnt.
Danke
 
private void durchsuchen(string Pfad)
{
try
{
string[] Dateien = System.IO.Directory.GetFiles(Pfad, "*.mp3"); // alle Dateien mit der endung mp3 zurückgeben
foreach (string datei in Dateien) //alle Dateinamen im Verzeichnis durchlaufen
{
list.Items.Add(datei); //dateimit Pfad der Listbox hinzufügen
}
string[] Pfade = System.IO.Directory.GetDirectories(Pfad); //hole alle Verzeichnisse von Pfad
foreach (string NextPfad in Pfade) //durchlaufe alle Verzeichnisse
{
durchsuchen(NextPfad); //erneute schleife im nächsten Verzeichnis
}
}
catch(Exception e)
{
listDurchsuchenFehlerListe.Items.Add(Pfad +" : "+e.Message); //schreibe hier fehler in eine listbox
}
}

So in etwa müsste es gehen, da ich gerade selbst soetwas ähnliches mache! Einfach Pfad übergeben
 
Ja genau,
ich möchte mit "Treeview" ein Laufwerk auswählen und anschliessend alle Directories\SubDirectories\Dateien *.mp3 anzeigen bzw. in eine Textdatei schreiben.
Leider komme ich nicht so gut vorwärts...

Danke für den Tipp
 
Dann wirst du dich wohl mit Rekursionen beschäftigen müssen.

Code:
private void FileList (string directory) 
{
	DirectoryInfo di = new DirectoryInfo(directory);
	FileInfo[] fis = di.GetFiles();

	foreach (FileInfo fi in fis) 
	{
		// Namen auslesen und Liste füllen
	}

	DirectoryInfo[] dis = di.GetDirectories();
	foreach (DirectoryInfo di in dis) 
	{
		FileList(di.FullName);
	}
}

private void StartFileList() 
{
	string myFirstDirectory = "C:\\";
	GetCurrentMenu(myFirstDirectory);
}
 
danke für die schnelle Antwort,
ich werde versuchen, diese Passage im Quellcode zu verwenden.
(Ich möchte meine mp3-dateien in einer Datenbank verwalten)
dafür möchte ich diese Pfade komplett in eine *.txt schreiben, die * und später von einer DB importieren.
Dazu wird es nötig sein, die txt zu formatieren und mit Trennzeichen zwischen den Feldnamen zu versehen. Das erledige ich jetzt noch mit "Suchen und Ersetzen". Aber auch das soll später mit zum Umfang gehören. Aber erst mal den Anfang machen....
und ein Formular zum Auswählen eines Laufwerkes entwickeln... ;)
Der OpenFileDialog eignet sich leider nicht dafür....
 
1. Wieso schreibst es nicht gleich in die Datenbank? Dann ersparst dir den Weg über das TextFile

2. OpenFileDialog kannst du vergessen. Nimm den ShellFolderBrowser, der kann das was du brauchst.
 

Neue Beiträge

Zurück