zoukankan      html  css  js  c++  java
  • C#搜索指定文件夹内的符合要求的文件

    下面的列子是文件的模糊查找,

    具体功能是:选定文件夹,搜索所有文件命中包含“_bui”字样的shp图层(后缀为.shp)并将信息显示在ListView中。实际应用中可随便修改。

    这里采用递归方法进行深度搜索,浅层的搜索就不再记录。

    List<FiledInfo>Listed=new List<FileInfo>();//存储符合要求的文件的FiledInfo

    string hz="shp"//文件后缀

    private int k=0;

    public List<FileInfo>GetAllFiles(string path)

    {    

        if(!Directory.Exists(path)) //判断文件夹是否存在,一般直接选着文件夹不会有问题,这里是应对手动输入的情况

            return null;

        DirectoryInfo dir=new DirectorInfo(path);  

        if(k<1)

          {

             FileInfo[]fi=dir.GetFiles();

             for(int i=0;i<fi.Length;i++)

                 {

                      string filestr=fi[i].Name;

                      if((filestr.Congtains(filestr.LastIndexOf(".")+1))==hz)

                       {

                           if(filestr.Contains("_bui")||filestr.Contains("_BUI"))

                              List.Add(fi[i]);

                       }

                 }

                 k++;

          }

          else

         {

             List<FileInfo>subList=GetFilesByDir(path);     

             foreach (FileInfo subFile in subList)
             {
                List.Add(subFile);
             }
          }
             DirectoryInfo[] subDir = dir.GetDirectories();
             string Spath = "";
             foreach (DirectoryInfo d in subDir)
            {
                 Spath = path + "\" + d.ToString() + "\";
                  GetAllFiles(Spath);
             }
             return List;
     }

    private List<FileInfo> GetFilesByDir(string path)
    {

       DirectoryInfo di = new DirectoryInfo(path);
       //找到该目录下的文件
       FileInfo[] fi = di.GetFiles();
       //把FileInfo[]数组转换为List    
       List<FileInfo> list = new List<FileInfo>();

      for (int i = 0; i < fi.Length; i++)
        {
          string filestr = fi[i].Name;
          if ((filestr.Substring(filestr.LastIndexOf(".") + 1)) == hz)
           {
               if (filestr.Contains("_bui") || filestr.Contains("_BUI"))
               List.Add(fi[i]);
            }
        }
        return list;
    }

  • 相关阅读:
    UVA
    Codeforces 898F 字符串hash
    牛客练习赛11 B trie树+拓扑判环 E 分治求平面最近点对
    Codeforces Round #459 (Div. 2) C 思维,贪心 D 记忆化dp
    2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) D bfs思维 E bfs I Floyd找最小环 K 二分
    Educational Codeforces Round 37 E 补图求连通块 bfs+链表优化 F 线段树套路
    Codeforces 919E 数论,思维
    大数加法(主要是想记住模板)
    基础图论3
    简单并查集2hdu1213
  • 原文地址:https://www.cnblogs.com/pengdage110/p/4122071.html
Copyright © 2011-2022 走看看