C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
2024-08-26 14:22:17
public partial class FileGet
{
/// <summary>
/// 私有变量
/// </summary>
private static List<FileInfo> lst = new List<FileInfo>();
/// <summary>
/// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
/// </summary>
/// <param name="path">文件夹路径</param>
/// <param name="extName">扩展名可以多个 例如 .mp3.wma.rm</param>
/// <returns>List<FileInfo></returns>
public static List<FileInfo> getFile(string path, string extName)
{
getdir(path, extName);
return lst;
}
/// <summary>
/// 私有方法,递归获取指定类型文件,包含子文件夹
/// </summary>
/// <param name="path"></param>
/// <param name="extName"></param>
private static void getdir(string path, string extName)
{
try
{
string[] dir = Directory.GetDirectories(path); //文件夹列表
DirectoryInfo fdir = new DirectoryInfo(path);
FileInfo[] file = fdir.GetFiles();
//FileInfo[] file = Directory.GetFiles(path); //文件列表
if (file.Length != || dir.Length != ) //当前目录文件或文件夹不为空
{
foreach (FileInfo f in file) //显示当前目录所有文件
{
if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= )
{
lst.Add(f);
}
}
foreach (string d in dir)
{
getdir(d, extName);//递归
}
}
}
catch (Exception ex)
{
LogHelper.WriteLog(ex);
throw ex;
}
}
} public partial class FileGet1
{
/// <summary>
/// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
/// </summary>
/// <param name="path">文件夹路径</param>
/// <param name="extName">扩展名可以多个 例如 .mp3.wma.rm</param>
/// <returns>List<FileInfo></returns>
public static List<FileInfo> getFile(string path, string extName)
{
try
{
List<FileInfo> lst = new List<FileInfo>();
string[] dir = Directory.GetDirectories(path); //文件夹列表
DirectoryInfo fdir = new DirectoryInfo(path);
FileInfo[] file = fdir.GetFiles();
//FileInfo[] file = Directory.GetFiles(path); //文件列表
if (file.Length != || dir.Length != ) //当前目录文件或文件夹不为空
{
foreach (FileInfo f in file) //显示当前目录所有文件
{
if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= )
{
lst.Add(f);
}
}
foreach (string d in dir)
{
getFile(d, extName);//递归
}
}
return lst;
}
catch (Exception ex)
{
LogHelper.WriteLog(ex);
throw ex;
}
} }
最新文章
- 开窗函数 First_Value 和 Last_Value
- android之Handler机制
- tp框架总结(四)
- Duilib扩展《01》— 双击、右键消息扩展
- POJ 2136 Vertical Histogram
- JavaMail API 1.4.7邮件发送
- ";git rm"; 和 ";rm"; 的区别
- Hello World 老调重谈
- 提问!同一ajax请求获取的图片路劲,在谷歌浏览器能正确展示图片,在火狐浏览器则显示路径undefined
- java代码块的理解
- PHP中使用 fsockopen curl 模拟异步处理
- 3.14 unittest之skip
- c# 对html字符串进行编码
- Python 中常见错误总结
- php -- 连接Mysql 数据库
- odoo之自动生成编号问题
- uchome 缓存生成
- UEFI下windows启动过程
- mybatis 传参是 list<;string>; 的注意事项
- Sublime Text3下载激活汉化
热门文章
- C# 自定义类型通过实现IFormattable接口,来输出指定的格式和语言文化的字符串(例:DateTime)
- charles撰写工具/compose和Compose New
- 使用Java客户端对Redis进行操作
- php -- 显示当前时间
- axios跨域post请求后台参数为null
- visual studio code 个人设置
- Solidity中如何判断mapping中某个键是否为空呢?
- 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征
- mysqldump 用法
- win 7 64 mysql 5.6.4 安装