很多时候我们需要获取一个结构未知的文件夹下所有的文件或是指定类型的所有文件,C#中可以通过递归实现,现在我们就获取一下jquery easyui文件夹中包含的所有js文件:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
GetFiles(@"C:\Users\dongshenfeng\Desktop\easyui", "*.js", ref list);
foreach (string item in list)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
/// <summary>
/// 获取文件夹下所有文件
/// </summary>
/// <param name="directory">文件夹路径</param>
/// <param name="pattern">文件类型</param>
/// <param name="list">集合</param>
static void GetFiles(string directory, string pattern, ref List<string> list)
{
DirectoryInfo directoryInfo = new DirectoryInfo(directory);
foreach (FileInfo info in directoryInfo.GetFiles(pattern))
{
list.Add(info.FullName);
}
foreach (DirectoryInfo info in directoryInfo.GetDirectories())
{
GetFiles(info.FullName, pattern, ref list);
}
}
}
}
结果如下图所示: