c#通过代码获得文件夹下面所有的文件(含正则方式和cmd方式)

1、微软没有提供文件夹匹配,比如说D:\Test*\test*.prefab,这样是没法匹配的!!!
2、Directory.GetFiles(dic,filename);其中filename支持正则,还提供第三个参数,是否递归查找(SearchOption.AllDirectories)
3、cmd方式

public static List<string> GetAllMatchesFilePath(string matchesFilePath){
			List<string> ret = new List<string>();
			// 要执行的命令行命令  
			string command = "dir /b/s " + matchesFilePath; // 例如,在Windows上列出当前目录的文件和文件夹  
  
			// 创建一个新的ProcessStartInfo对象,设置命令行参数和其他属性  
			System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo  
			{  
				FileName = "cmd.exe", // 通常使用cmd.exe来执行命令行命令  
				Arguments = "/c " + command, // /c参数告诉cmd.exe执行完命令后关闭  
				UseShellExecute = false, // 设置为false,以便我们可以重定向输出  
				RedirectStandardOutput = true, // 允许我们从.NET中读取stdout  
				RedirectStandardError = true, // 允许我们从.NET中读取stderr  
				CreateNoWindow = true // 不创建新的窗口  
			};  
  
			// 创建一个新的Process对象  
			using (System.Diagnostics.Process process = new System.Diagnostics.Process { StartInfo = startInfo })  
			{  
				// 开始执行进程  
				process.Start();  
  
				// 读取标准输出  
				StringBuilder output = new StringBuilder();  
				using (StreamReader reader = process.StandardOutput)  
				{  
					string result = reader.ReadToEnd();
					string[] spStrArray = result.Split("\r\n");
					foreach(string str in spStrArray){
						if(!string.IsNullOrEmpty(str)){
							ret.Add(str);  
						}
					}
				}  
				// 等待进程完成  
				process.WaitForExit();  
			}  
			return ret;
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值