上一篇的博客中,我们讲解了File类的常用操作,今天这篇分享一个完整的类,作用是递归获取某个文件夹中所有文件。直接看代码就行了,也不复杂
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NS.Core
{
/// <summary>
/// 文件夹操作帮助类
/// </summary>
public class DirectoryHelper
{
private static ArrayList directorysList = new ArrayList(); //存储目录列表数据
private static ArrayList fileList = new ArrayList(); //存储文件路径列表
public static ArrayList DirectorysList
{
get { return DirectoryHelper.directorysList; }
set { DirectoryHelper.directorysList = value; }
}
public static ArrayList FileList
{
get { return DirectoryHelper.fileList; }
set { DirectoryHelper.fileList = value; }
}
public static void InitDirectory()
{
//注:数据需初始化
DirectoryHelper.DirectorysList = new ArrayList();
DirectoryHelper.FileList = new ArrayList();
}
public static void GetDirectory(string sourcePath)
{
//判断源文件夹是否存在
if (Directory.Exists(sourcePath))
{
//获取源文件夹中的目录及文件路径,存入字符串
string[] tmp = Directory.GetFileSystemEntries(sourcePath);
//循环遍历
for (int i = 0; i < tmp.Length; i++)
{
//如果是文件则存入FileList
if (File.Exists(tmp[i]))
{
FileList.Add(tmp[i]);
}
else
{
//如果是最后一层目录则把其路径存入DirectorysList
if ((Directory.GetDirectories(tmp[i])).Length == 0)
{
DirectorysList.Add(tmp[i]);
}
}
//递归开始.......
GetDirectory(tmp[i]);
}
}
}
}
}
相关阅读
文章评论