C#枚举各目录的文件

1:列出目录和所有子目录中的所有内容

Directory.EnumerateDirectories 和 Directory.EnumerateFiles 函数都具有一个重载,该重载接受用于指定搜索模式文件和目录必须匹配的参数。

Directory.EnumerateFiles:获取目录下的文件夹。

Directory.EnumerateDirectories:获取目录的目录

Directory.EnumerateFileSystemEntries:获取目录下的文件夹和文件.

它们还具有另一个重载,该重载接受用于指示是否以递归方式遍历指定的文件夹及其所有子文件夹的参数,例:第二个参数可以设为*.txt.,枚举出所有*.txt的文件。

IEnumerable<string> files = Directory.EnumerateFiles(@"C:\MyDrivers", "*", SearchOption.AllDirectories);
foreach (var item in files)
{
    textBox1.Text = textBox1.Text.Insert(0, "\r\n" + item);
}

C#枚举各目录的文件

获取目录下的所有文件夹和文件:

IEnumerable<string> files = Directory.EnumerateFileSystemEntries(@"C:\MyDrivers", "*", SearchOption.AllDirectories);
foreach (var item in files)
{
    textBox1.Text = textBox1.Text.Insert(0, "\r\n" + item);
}

C#枚举各目录的文件

2:确定当前目录

有时,你不知道运行程序的目录是什么。你需要让它只使用当前目录的路径。.NET 通过 Directory.GetCurrentDirectory 方法公开当前目录的完整路径。

textBox1.Text =Directory.GetCurrentDirectory();

C#枚举各目录的文件

2-1使用特殊目录

.NET 可在任何位置运行。它可在 Windows、macOS、Linux 上运行,甚至可在 iOS 和 Android 等移动操作系统上运行。每个操作系统都可能有(也可能没有)特殊系统文件夹的概念,如专用于用户特定文件的主目录、桌面目录或用于存储临时文件的目录。

这些目录在每个操作系统上都是不同的。因此记住每个操作系统的目录结构并基于当前 OS 执行切换操作会非常麻烦。

System.Environment.SpecialFolder 枚举指定用于检索特殊系统文件夹路径的常量。

以下代码将返回当前操作系统的路径,该路径等效于 Windows\My Documents 文件夹路径或用户的主目录路径(如果此代码在 Linux 上运行)。

textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.System);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.Templates);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.Windows);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.History);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
textBox1.Text = textBox1.Text + "\r\n" + Environment.GetFolderPath(Environment.SpecialFolder.Startup);

C#枚举各目录的文件

特殊路径字符

Path 类使用文件和文件夹路径的概念,这些路径就是一些字符串。可以使用 Path 类生成正确的特定操作系统路径。

例如,如果想要获取“stores/201”文件夹的路径,可以使用 Path.Combine 函数来执行此操作。

Console.WriteLine(Path.Combine("stores","201")); // outputs: stores/201