c# 文件夹查询 我有一个文件夹。。文件夹下面有几个子文件夹。子文件夹下面有可能还有子文件夹。文件夹下面有.WWP文件。。就是我说我想在一个文件夹下面查找所有wwp文件。。包括子文件夹。 用c# 怎么实现。。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static void FindFile(string path) { DirectoryInfo di = new DirectoryInfo(path); if (!di.Exists) { Console.WriteLine("The path :" + path + "is not exist!"); return; } try { foreach (FileInfo f in di.GetFiles()) Console.WriteLine(f.FullName); foreach (DirectoryInfo d in di.GetDirectories()) FindFile(di.FullName); } catch { } }想找什么类型的文件加个if就行 /// <summary> /// 获取目录中所有文件路径 /// </summary> /// <param name="dir">目录</param> /// <param name="patt">匹配正则(如:*.(txt|log))</param> /// <param name="deep">是否为深查找(搜索子目录)</param> /// <returns></returns> public static string[] GetFiles(string dir, string patt, bool deep) { string pattern = "(?i)^" + patt.Replace(".", @"\.") + "$"; Regex reg = new Regex(pattern); List<string> list = new List<string>(); try { string[] files = Directory.GetFiles(dir); foreach (string file in files) { if (reg.IsMatch(file)) list.Add(file); } if (deep) { foreach (string dire in Directory.GetDirectories(dir)) { list.AddRange(GetFiles(dire, patt, deep)); } } } catch (Exception ex) { throw ex; } return list.ToArray(); } 这个场景不需要递归!一行代码可以搞定。假设你在c:\root下面搜索System.IO.Directory.GetFiles(@"c:\root", "*.wwp", System.IO.SearchOption.AllDirectories); DirectoryInfo Directory.GetFiles 就可以了 功能函数:/// <summary> /// 返回指定类型的文件信息 /// </summary> /// <param name="filePath">要查找的文件夹</param> /// <param name="strExt">文件类型,如 *.txt</param> /// <returns>返回所有符合条件的文件信息</returns> private string GetFiles(string filePath,string strExt) { string[] files = Directory.GetFiles(filePath, strExt, SearchOption.AllDirectories); string strResult = string.Empty; foreach (string s in files) strResult += (strResult.Length == 0 ? "" : "\n") + s; return strResult; }调用:string strResult = this.GetFiles("具体路径", "*.txt"); [A-Z]{2,1999} 正则表达式匹配两个以上的大写字母 请问关于switch语句的用法 有趣的问题,如何解析这个XML 高手请进,谢谢 用c#如何实现当处理大数据量时响应界面信息! 日期格式问题。高手急救 关于DataGrid的一个怪问题,高手们进来看看。。。 DataGrid 的数型显示问题 C#作业求助 [18]Winform中的DataGrid的RowHeader上怎么加入图标和行号? 在参数中,SqlDbType.Decimal 如何指定精度呢(共几位,小数占几位) 怎么获取特定的日期时间距今多少分钟?
{
DirectoryInfo di = new DirectoryInfo(path);
if (!di.Exists)
{
Console.WriteLine("The path :" + path + "is not exist!");
return;
}
try
{ foreach (FileInfo f in di.GetFiles())
Console.WriteLine(f.FullName);
foreach (DirectoryInfo d in di.GetDirectories())
FindFile(di.FullName);
}
catch
{
}
}想找什么类型的文件加个if就行
/// <summary>
/// 获取目录中所有文件路径
/// </summary>
/// <param name="dir">目录</param>
/// <param name="patt">匹配正则(如:*.(txt|log))</param>
/// <param name="deep">是否为深查找(搜索子目录)</param>
/// <returns></returns>
public static string[] GetFiles(string dir, string patt, bool deep)
{
string pattern = "(?i)^" + patt.Replace(".", @"\.") + "$"; Regex reg = new Regex(pattern); List<string> list = new List<string>(); try
{
string[] files = Directory.GetFiles(dir); foreach (string file in files)
{
if (reg.IsMatch(file))
list.Add(file);
}
if (deep)
{
foreach (string dire in Directory.GetDirectories(dir))
{
list.AddRange(GetFiles(dire, patt, deep));
}
}
}
catch (Exception ex)
{
throw ex;
}
return list.ToArray();
}
假设你在c:\root下面搜索
System.IO.Directory.GetFiles(@"c:\root", "*.wwp", System.IO.SearchOption.AllDirectories
);
/// <summary>
/// 返回指定类型的文件信息
/// </summary>
/// <param name="filePath">要查找的文件夹</param>
/// <param name="strExt">文件类型,如 *.txt</param>
/// <returns>返回所有符合条件的文件信息</returns>
private string GetFiles(string filePath,string strExt)
{
string[] files = Directory.GetFiles(filePath, strExt, SearchOption.AllDirectories);
string strResult = string.Empty;
foreach (string s in files)
strResult += (strResult.Length == 0 ? "" : "\n") + s;
return strResult;
}调用:string strResult = this.GetFiles("具体路径", "*.txt");