2013-02-14 26 views
74

Ich wollte wissen, ob es möglich ist, alle Namen von Textdateien in einem bestimmten Ordner zu erhalten.Abrufen aller Dateinamen aus einem Ordner mit C#

Zum Beispiel habe ich einen Ordner mit dem Namen Maps, und ich möchte die Namen aller Textdateien in diesem Ordner abrufen und es einer Liste von Zeichenfolgen hinzufügen.

Ist es möglich, und wenn ja, wie kann ich das erreichen?

+8

Die Tatsache, dass Sie ein Anfänger nicht relevant ist, die Tatsache, dass man nicht alles versucht haben, ist sehr schlecht. Eine einfache Suche auf Ihrer Lieblings-Suchmaschine für "C# Ordner erhalten alle Dateien" wird Ihnen Tausende Links geben. »Gib einem Mann einen Fisch, und du fütterst ihn für einen Tag. Bringen Sie ihm bei, wie man fischt, und Sie füttern ihn für ein Leben lang. -Lao Tzu - Altes chinesisches Sprichwort – Steve

+32

Das stört mich wirklich. Du gibst ihm keinen Fisch oder lehrst ihm das Fischen bei, du hältst ihn nur vor. Wenn Sie ihm wirklich beibringen wollten, wie man fischt, könnten Sie haben. –

+0

4 Jahre später, bist du ein Profi?oder verhungert auf ein anderes Fisch-Handout hoffen? Meine Angelstelle ist [site: stackoverflow.com] (https: // site: stackoverflow.com) –

Antwort

60
using System.IO; //add this namespace also 

string[] filePaths = Directory.GetFiles(@"c:\Maps\", "*.txt", 
             SearchOption.TopDirectoryOnly); 
-4

Ich würde empfehlen, google 'Lesen Sie Objekte im Ordner'. Sie müssen möglicherweise einen Leser und eine Liste erstellen und den Leser alle Objektnamen im Ordner lesen lassen und sie der Liste in n Schleifen hinzufügen.

+6

Viel effizienter die integrierte GetFiles-Methode für die Directory-Klasse zu verwenden. –

157
DirectoryInfo d = new DirectoryInfo(@"D:\Test");//Assuming Test is your Folder 
FileInfo[] Files = d.GetFiles("*.txt"); //Getting Text files 
string str = ""; 
foreach(FileInfo file in Files) 
{ 
    str = str + ", " + file.Name; 
} 

Hope this helfen ...

+21

Verwenden von System.IO; – Jeff

+7

FileInfo hat viel Overhead, es wäre viel besser, Path.GetFileName (filePath) zu verwenden –

32

Es hängt davon ab, was Sie tun wollen.

ref: http://www.csharp-examples.net/get-files-from-directory/

Dadurch werden alle Dateien im angegebenen Verzeichnis

string[] fileArray = Directory.GetFiles(@"c:\Dir\"); 

Diese alle Dateien mit einer bestimmten Endung im angegebenen Verzeichnis

string[] fileArray = Directory.GetFiles(@"c:\Dir\", "*.jpg"); 
bringt wieder zurückbringen

Dadurch werden ALLE Dateien im angegebenen Verzeichnis sowie alle Unterverzeichnisse mit einer bestimmten Erweiterung

0 zurückgebracht
string[] fileArray = Directory.GetFiles(@"c:\Dir\", "*.jpg", SearchOption.AllDirectories); 

hoffe, das hilft

Verwandte Themen