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

3371cbf125ba60c64f238c13c466549a.png

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

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

88097eabddacfc7f90ad4a92707c28c2.png

2:确定当前目录

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

textBox1.Text =Directory.GetCurrentDirectory();

88145d14c1258aa52032e9b177601914.png

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

6b4a37242c7b2ba8f8a65d2a60afb85b.png

特殊路径字符

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

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

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

技术群: 需要进技术群学习交流的请添加小编微信,切记备注:加群,对以上内容有什么疑问也可以直接和小编直接沟通交流!     

小编微信:mm1552923   

公众号:dotNet编程大全   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值