是否有一种算法可以列出文件夹中的所有文件(对于 C#)?

Is there an algorithms that can list all file in the folder (for C#)?

你好 Whosebug 社区,

我正在开发一个 C# Web 应用程序,它可以在一个文件夹中显示所有必需的文件。例如,您有一个名为“地图”的文件夹,其中存储了有关纽约市的所有信息。我将在这里描述这个文件夹:粗体字是文件夹。

文件夹映射:

->纽约市

->>satellite.png

->>coordinates.txt

->>bridges.png

->>路1

->>>satellite1.png

->>>roads.txt

->>>houses.png

如您所见,在 Maps 文件夹中有 NewYorkCity 文件夹,在其中,我们有 Road1 文件夹。现在我想收集所有具有“*.png”类型的文件。这意味着我想收集根文件夹中的所有图像。这里的问题是收集文件的算法。我想过使用“for循环”,但我不知道子文件夹的数量,所以我认为这是不可能的。

这是列出我使用过的具有指定类型的文件的代码,但它适用于一个文件夹中没有任何子文件夹的文件。

DirectoryInfo dInfo = new DirectoryInfo(zipPath); //Assuming Test is your Folder 
FileInfo[] Files = dInfo.GetFiles("*.png"); //Getting Text files 
string str = ""; 
foreach (FileInfo file in Files) 
{ 
    str = str + ", " + file.Name; 
}

希望您理解我的问题。谢谢。

您可以从 reading the documentation 开始,在那里您会找到 System.IO.DirectoryInfo

创建一个 DirectoryInfo 实例,并根据您 want/need 使用其任何方法

  • EnumerateDirectories()
  • EnumerateFiles()
  • EnumerateFileSystemInfos()

像这样:

DirectoryInfo di = new DirectoryInfo(@"c:\Maps");

foreach (var fsi in di.EnumerateFileSystemInfos("*", SearchOptions.AllDirectories)
{
  // Do something useful with fsi here
}