我想知道是否有可能在某个文件夹中获得所有文本文件的名称。

例如,我有一个名为Maps的文件夹,我想获取该文件夹中所有文本文件的名称,并将其添加到字符串列表中。

这可能吗?如果可能,我该如何实现?


当前回答

using System.IO;

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;
}

其他回答

这取决于你想做什么。

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

这将带回指定目录中的所有文件

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

这将返回指定目录中具有特定扩展名的所有文件

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

这将返回指定目录中的所有文件以及具有特定扩展名的所有子目录

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

希望这能有所帮助

我会推荐你谷歌“读取文件夹中的对象”。您可能需要创建一个阅读器和一个列表,让阅读器读取文件夹中的所有对象名称,并在n个循环中将它们添加到列表中。

看一下目录。GetFiles方法(字符串,字符串)(MSDN)

该方法以文件名数组的形式返回所有文件。

using System.IO;

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;
}
using System.IO; //add this namespace also 

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