递归输出文件夹下的所有文件的名称(转自 MSDN)

问题:如何输出给定文件夹目录下面的所有文件的名称?

C#代码:

using System;
using System.IO; namespace MyTest
{
public class Program
{
public static void Main(string[] args)
{
// 假设是输出 f:\temp 文件下的所有文件的名称
args = new string[] { "f:\\temp" };
foreach (string path in args)
{
if (File.Exists(path))
{
// path 是某个文件的路径
ProcessFile(path);
}
else if (Directory.Exists(path))
{
// path 是某个文件夹的路径
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} 不是一个有效的文件或文件夹路径。", path);
}
}
System.Console.ReadLine();
} // 根据传入的文件夹路径,递归查出它包含的所有文件和文件夹,并处理各个文件夹下包含的文件
public static void ProcessDirectory(string targetDirectory)
{
// 处理 targetDirectory 路径下的文件列表
string[] fileEntries = Directory.GetFiles(targetDirectory);
foreach (string fileName in fileEntries)
{
ProcessFile(fileName);
} // 递归到 targetDirectory 路径下的子路径中
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach (string subdirectory in subdirectoryEntries)
{
ProcessDirectory(subdirectory);
}
} // 这里添加如何处理找到的文件的逻辑
public static void ProcessFile(string path)
{
Console.WriteLine("已处理文件:'{0}'", path);
}
}
}

输出结果:

已处理文件:'f:\temp\test.txt'

已处理文件:'f:\temp\MyTest.sln'

已处理文件:'f:\temp\MyTest\App.config'

......

原文地址:https://msdn.microsoft.com/zh-cn/library/07wt70x2(v=vs.110).aspx

https://msdn.microsoft.com/zh-cn/library/4cyf24ss(v=vs.110).aspx

上一篇:CSS的引入方式及CSS选择器


下一篇:shell脚本实现查找文件夹下重复的文件,并提供删除功能