本章讲述:获取当前文件夹和子文件夹的文件,以及文件夹目录,这里添加了文件目录和文件的层次;
使用的相关函数:
public FileInfo[] GetFiles();//返回当前目录的文件列表。
public DirectoryInfo[] GetDirectories();//返回当前目录的子目录。
这里采用递归的方式实现,代码如下
private int m_dirFilesCount = 0;//文件总数
private List<FileInfos> m_DirAll = new List<FileInfos>();//文件夹列表
private List<FileInfos> m_FilePath = new List<FileInfos>();//文件列表
public List<FileInfos> GetAllFiles(DirectoryInfo dirPath, int level)
{
FileInfo[] fileInfo = dirPath.GetFiles();
m_dirFilesCount += fileInfo.Count();
foreach(var file in fileInfo)
{
m_FilePath.Add(new FileInfos() { FullPath = file.FullName, Levels = level });
}
DirectoryInfo[] allDir = dirPath.GetDirectories();
foreach (DirectoryInfo dir in allDir)
{
m_DirAll.Add(new FileInfos() { FullPath = dir.FullName, Levels = level + 1 });
GetAllFiles(dir, level+1);
}
return m_DirAll;
}
定义类结构
public class FileInfos
{
public string FullPath { get; set; }
public int Levels { get; set; }
}
调用示例
GetAllFiles(new DirectoryInfo(@"C:\Users\Desktop\test"), 1);