ChatGPT解决这个技术问题 Extra ChatGPT

使用 C# 从文件夹中获取所有文件名 [重复]

这个问题在这里已经有了答案:How to recursive list all the files in a directory in C#? (23 个回答) 9 年前关闭。

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

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

是否有可能,如果可以,我该如何实现?


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

使用 System.IO;
FileInfo 开销很大,使用 Path.GetFileName(filePath) 会好很多
DirectoryInfoFileInfoDirectory.GetFiles 方法相比如何?
@Jeff请在一些答案下,其中使用了哪些名称空间并不明显:D Thx。
H
Hammad Sajid
using System.IO; //add this namespace also 

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

Directory.GetFilesDirectoryInfoFileInfo 方法相比如何?
@AaronFranke Directory.GetFiles 将为您提供目录中包含的文件的完整路径数组,而 DirectoryInfo 方法将为您提供 FileInfo 数组,其中包含有关每个文件的更多信息,例如文件名、扩展名、大小、修改时间等
G
Gawie Greef

这取决于你想做什么。

参考: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);

希望这可以帮助


r
rerun

做你想要的。

System.IO.Directory.GetFiles


IO 大写。
在这里,我们不鼓励简单地链接到手册。下次您还应该在此处粘贴相关信息和您的答案。
P
Peter Mortensen

查看 Directory.GetFiles Method (String, String) (MSDN)。

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


R
RainbowFish

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

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

Directory.GetFiles() 

方法返回一个字符串数组,表示目标目录中的文件。


P
Peter Mortensen

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


使用 Directory 类的内置 GetFiles 方法效率更高。