针对“c# 遍历获取所有文件的示例代码”的完整攻略,我将通过以下几个步骤详细说明。
1. 确定遍历目标
在编写代码之前,需要先明确需要遍历的目标文件夹。可以通过以下方式获取目标文件夹路径,此处以桌面为例:
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string targetPath = Path.Combine(desktopPath, "targetFolder");
上述代码首先获取了用户桌面目录,然后利用 Path
类的 Combine
方法拼接出目标文件夹路径。
2. 获取目标文件夹下所有文件
在获取文件列表之前,需要判断目标文件夹是否存在,否则就无法完成遍历操作,代码如下:
if (!Directory.Exists(targetPath))
{
Console.WriteLine("文件夹不存在,请检查路径!");
// 在此处可以抛出异常进行处理,代码略
}
如果目标文件夹存在,那么可以使用 Directory.GetFiles
方法获取文件列表,如下所示:
var files = Directory.GetFiles(targetPath, "*.*", SearchOption.AllDirectories);
foreach (var fileName in files)
{
Console.WriteLine(fileName);
}
其中,*.*
参数表示获取目标文件夹下所有类型的文件,SearchOption.AllDirectories
则表示在子目录中继续搜索,遍历整个目录树。最后利用 foreach
循环遍历文件列表,并将每个文件名输出到控制台上。
示例说明
以上就是获取目标文件夹下所有文件的示例代码,通过以上代码可以获取目标文件夹下所有文件的路径信息。如果想进一步操作这些文件,可以针对 fileName
所表示的文件路径进行相应的操作。
下面给出两个具体的使用示例。
示例1:统计文件类型个数
假设现在需要统计目标文件夹下所有类型文件的个数,可以通过以下代码实现:
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (var file in files)
{
string ext = Path.GetExtension(file);
if (dict.ContainsKey(ext))
{
dict[ext]++;
}
else
{
dict[ext] = 1;
}
}
foreach (var item in dict)
{
Console.WriteLine("{0}类型共有{1}个文件", item.Key, item.Value);
}
以上代码定义了一个 Dictionary
对象,用于存储各个文件类型的数量,然后在遍历文件列表时,从每个文件的路径中提取出文件扩展名,并根据扩展名判断是否在 Dictionary
对象中已经存在,如果存在就把对应的计数器加1,否则就新建计数器并赋初值1。最后遍历 Dictionary
对象,输出每个文件类型对应的文件数量。
示例2:复制目标文件夹下所有图片文件
假设现在需要将目标文件夹下所有的图片文件复制到另一个目录中,可以通过以下代码实现:
string destPath = Path.Combine(desktopPath, "copyFolder");
if (!Directory.Exists(destPath))
{
Directory.CreateDirectory(destPath);
}
foreach (var file in files)
{
string ext = Path.GetExtension(file);
if (ext.Equals(".jpg") || ext.Equals(".png") || ext.Equals(".bmp"))
{
string destFile = Path.Combine(destPath, Path.GetFileName(file));
File.Copy(file, destFile, true);
}
}
以上代码首先判断目标文件夹是否已经存在,如果不存在就创建一个新的文件夹。然后遍历文件列表,判断每个文件是否属于图片文件(这里假设 .jpg
、.png
和 .bmp
文件都是图片文件),如果是就将该文件复制到目标文件夹下。这里调用了 File.Copy
方法进行文件复制,其中 true
表示如果目标文件夹下已经存在同名文件,就覆盖原文件。通过上述操作,就可以将目标文件夹下的所有图片文件复制到新的文件夹中。
以上就是两个具体的示例说明,具体操作根据需求进行调整即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 遍历获取所有文件的示例代码 - Python技术站