利用递归寻找某个目录下的指定名称所有文件(方法2)
2018-03-05 11:24
706 查看
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; namespace FindHongliPdf { class Program { static void Main(string[] args) { FindPdf(); } /// <summary> /// 寻找匹配名称的pdf /// </summary> public static void FindPdf() { //复制后存储的路径 string storagePath = @"\\10.10.129.77\巨潮下载测试\2017\20171130\新建文件夹\"; //需要寻找的文件地址 string path = @"C:\Users\qingping.li\Desktop\公司文档"; //文件需要匹配的正则 string pattern = ".*权益.*实施.*|.*分红.*|.*派息.*|.*转增.*|.*利润分.*实施.*|.*红.*分配.*"; GetAllPath(path, storagePath, pattern); } public static void GetAllPath(string path, string storagePath, string pattern) { DirectoryInfo Info = new DirectoryInfo(path); DirectoryInfo[] dirInfoArray = Info.GetDirectories(); List<DirectoryInfo> dirList = new List<DirectoryInfo>(); GetDirList(dirInfoArray, dirList); //遍历所有文件夹信息 foreach (DirectoryInfo item in dirList) { CopyFile(item, storagePath, pattern); } } /// <summary> /// 遍历出所有的文件夹信息 /// </summary> /// <param name="dirInfoArray">文件夹数组信息</param> /// <param name="dirList">所有的文件夹信息</param> public static void GetDirList(DirectoryInfo[] dirInfoArray, List<DirectoryInfo> dirList) { foreach (DirectoryInfo item in dirInfoArray) { dirList.Add(item); if (item.GetDirectories().Length > 0) { GetDirList(item.GetDirectories(), dirList); } } } /// <summary> /// 复制文件 /// </summary> /// <param name="item"></param> public static void CopyFile(DirectoryInfo item, string storagePath, string pattern) { if (item.GetFiles().Length > 0) { foreach (FileInfo file in item.GetFiles()) { if (file.Extension == ".pdf") { //匹配要扫描的文件名称 if (Regex.IsMatch(file.Name, pattern)) if (!File.Exists(storagePath + file.Name)) File.Copy(file.FullName, storagePath + file.Name); } Console.WriteLine(file.FullName); } } } } }
相关文章推荐
- 利用递归寻找某个目录下的指定名称所有文件
- Java利用递归思想遍历指定目录,获取所有的文件
- 递归 / 迭代两种方法实现查找指定目录下所有文件
- Java中如何利用File类递归的遍历指定目录中的所有文件和文件夹
- 用嵌套递归的方法搜索指定目录下的所有文件
- JAVA基础 day22 File类的方法和应用 利用递归获取目录下的所有文件 Properties类的应用(和IO技术结合,存取配置文件) 打印流和合并流等功能类的学习应用 切割文件练习
- C#取得指定路径下所有目录及文件名称(可递归)
- FileHasher:递归计算指定目录的所有文件的hash值,并依据hash值寻找重复的文件(update 2006-05-22)
- 取得指定路径下所有目录及文件名称(递归)
- 递归遍历所有指定目录中的文件及子文件夹中的文件
- 使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- 使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- VB中枚举指定目录下所有文件的方法
- 利用Dataview实现搜索指定目录下的所有文件,以指定的条件排序(可以按文件名升降序,最后修改时间升降序)
- NO.49 删除某目录下所有指定名称的文件(比如批量删除vssver.scc)
- C#利用递归方法在树控件中例遍磁盘目录及文件
- 使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- C语言 递归地删除一个指定目录下所有指定类型的文件
- asp.net 删除文件夹,指定文件夹,删除文件夹和所有文件,删除权限设置,递归删除文件夹目录及文件
- 读取指定目录下文件-- ---LIST+递归。(跳出结构思想。利用数据结构思路+程序写出更简单的逻辑。)