使用C#从文件夹中获取所有文件名

use*_*405 197 c# directory list text-files

我想知道是否可以在特定文件夹中获取所有文本文件的名称.

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

是否有可能,如果是的话,我怎么能做到这一点?

Gop*_*rma 317

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;
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助......

  • 使用System.IO; (46认同)
  • FileInfo有很多开销,使用Path.GetFileName(filePath)会好得多 (10认同)

Avi*_*tus 138

using System.IO; //add this namespace also 
Run Code Online (Sandbox Code Playgroud)
string[] filePaths = Directory.GetFiles(@"c:\Maps\", "*.txt",
                                         SearchOption.TopDirectoryOnly);
Run Code Online (Sandbox Code Playgroud)

  • @AaronFranke `Directory.GetFiles` 会给你一个包含在目录中的文件的完整路径数组,而 `DirectoryInfo` 方法会给你一个 `FileInfo` 数组,其中包含关于每个文件的更多信息,例如文件名,扩展名、大小、修改时间等。 (4认同)
  • “Directory.GetFiles”与“DirectoryInfo”和“FileInfo”方法相比如何? (2认同)

Gaw*_*eef 71

这取决于你想做什么.

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

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

string[] fileArray = Directory.GetFiles(@"c:\Dir\");
Run Code Online (Sandbox Code Playgroud)

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

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

这将带回指定目录中的所有文件AS WELL AS具有特定扩展名的所有子目录

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

希望这可以帮助


rer*_*run 13

完全符合你的要求.

System.IO.Directory.GetFiles


Jam*_*haw 9

看看Directory.GetFiles方法(字符串,字符串)(MSDN).

此方法将所有文件作为文件名数组返回.


小智 7

http://msdn.microsoft.com/en-us/library/system.io.directory.getfiles.aspx

System.IO命名空间有许多方法可以帮助您进行文件操作.该

Directory.GetFiles() 
Run Code Online (Sandbox Code Playgroud)

method返回表示目标目录中文件的字符串数组.