namespace
using System.IO;
遍历文件夹下的子文件和子文件夹
DirectoryInfo dirInfo = new DirectoryInfo(@"D:\TestDir")
// 遍历子文件
FileInfo[] fileInfos = dirInfo.GetFiles()
foreach (FileInfo fileInfo in fileInfos)
{
Console.WriteLine(fileInfo.Name)
Console.WriteLine(fileInfo.FullName)
Console.WriteLine(fileInfo.Extension)
}
// 遍历子文件夹
DirectoryInfo[] subDirInfos = dirInfo.GetDirectories()
foreach (DirectoryInfo subDirInfo in subDirInfos)
{
Console.WriteLine(subDirInfo.Name)
Console.WriteLine(subDirInfo.FullName)
}
遍历文件夹下所有层级的文件和文件夹
DirectoryInfo dirInfo = new DirectoryInfo(@"D:\TestDir");
List<FileInfo> subFileInfos = new List<FileInfo>();
List<DirectoryInfo> subDirInfos = new List<DirectoryInfo>();
ListAllLevelSubDirAndFile(dirInfo, ref subFileInfos, ref subDirInfos);
foreach (FileInfo subFileInfo in subFileInfos)
{
Console.WriteLine(subFileInfo.Name);
}
foreach (DirectoryInfo subDirInfo in subDirInfos)
{
Console.WriteLine(subDirInfo.Name);
}
public static void ListAllLevelSubDirAndFile(
DirectoryInfo dirInfo,
ref List<FileInfo> subFileInfoList,
ref List<DirectoryInfo> subDirInfoList)
{
if (dirInfo == null)
{
return;
}
FileInfo[] fileInfos = dirInfo.GetFiles();
foreach (FileInfo fileInfo in fileInfos)
{
subFileInfoList.Add(fileInfo);
}
DirectoryInfo[] subDirInfos = dirInfo.GetDirectories();
foreach (DirectoryInfo subDirInfo in subDirInfos)
{
subDirInfoList.Add(subDirInfo);
ListAllLevelSubDirAndFile(subDirInfo, ref subFileInfoList, ref subDirInfoList);
}
}