我有一个文件夹。。文件夹下面有几个子文件夹。子文件夹下面有可能还有子文件夹。文件夹下面有.WWP文件。。就是我说我想在一个文件夹下面查找所有wwp文件。。包括子文件夹。 用c# 怎么实现。。谢谢

解决方案 »

  1.   

     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就行
      

  2.   


            /// <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();
            }
      

  3.   

    这个场景不需要递归!一行代码可以搞定。
    假设你在c:\root下面搜索
    System.IO.Directory.GetFiles(@"c:\root", "*.wwp", System.IO.SearchOption.AllDirectories
    );
      

  4.   

    DirectoryInfo Directory.GetFiles 就可以了
      

  5.   

    功能函数:
    /// <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");