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;
}
C#搜索指定文件夹内的符合要求的文件的更多相关文章
- shell脚本编写某一文件夹内拷贝某一段文件(有则跳过没有则拷贝)
必须是同一台服务器下,或者挂载目录,不同服务器下没办法查询目录中是否有该文件 如果不在同一服务器下,可以把要查询的那个服务器的文件夹设置共享挂在到当前服务器 或者可以把脚本写到要拷贝的服务器上,那么s ...
- Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
private void SMT(HttpContext context) { string SqlConnection82 = System.Configuration.ConfigurationM ...
- PHP递归遍历指定文件夹内的文件
今天早上在地铁上看了关于文件和文件夹的一章,正好最近刚搞懂linux的文件系统,觉得对文件属性的访问跟Shell命令很像,所以想晚上来实践一下. 发现php的文件夹函数好像没有提供遍历文件夹下的所有文 ...
- apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法
apache环境下禁止某文件夹内运行PHP脚本.禁止访问文件或目录执行权限的设置方法 首先我们来看两段对上传目录设置无权限的列子,配置如下: <Directory "要去掉PHP执 ...
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 作者:Vashon package com.ywx.batchrename; import java.io.File; import ...
- 编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小
查看本章节 查看作业目录 需求说明: 在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小 实现思路: 创建ImageFileFilter类实现FilenameFilter接口,且重写 ...
- python对文件夹内文件去重
昨天无聊写了一个百度图片爬虫,测试了一下搜索"斗图".一下给我下了3000多个图片,关键是有一半以上重复的.what a fuck program ! 好吧,今天写一个文件去重功能 ...
- 怎么统计指定文件夹下含有.xml格式的文件数目
如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...
- ftp下载目录下所有文件及文件夹内(递归)
ftp下载目录下所有文件及文件夹内(递归) /// <summary> /// ftp文件上传.下载操作类 /// </summary> public class FTPH ...
随机推荐
- 什么是Reactor模式,或者叫反应器模式
Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些.通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或 ...
- MySQL中find_in_set()和in的区别
弄个测试表来说明两者的区别 CREATE TABLE `test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NUL ...
- Effective C++ 34 区分接口继承和实现继承
public继承从根本上讲,有两部分:接口继承和实现继承.两者之前的区别很像函数声明与函数定义. 具体设计中,会呈现三种形式:derived class只继承成员函数的接口(纯虚函数):derived ...
- js parseInt 显示0
parseInt 有第二个参数, 就是进制参数 parseInt("08", 10); //表示这个数字是十进制的就不会出错了.
- SpringMVC中遇到的Http400 Bad Request 总结
在搭建SpringMVC环境,在使用中遇到了多次Bad Request的连接,下面来总结下. 1.参数类型不对,如后台实体类的属性为int,但传来的参数为字符串 2.因为我的粗心,本来是要通过Ajax ...
- BZOJ 4582: [Usaco2016 Open]Diamond Collector
Descrirption 给你一个长度为 \(n\) 的序列,求将它分成两个序列后最多个数,每个序列最大值最小值不能超过 \(k\) Sol 二分+DP. 排一下序,找出以这个点结尾和开始的位置. 这 ...
- edghasdz
匹配2016年10月8日19时51分50秒匹配 可以使用
- SQLServer 事务隔离级别与锁的申请和释放
脏读:当一个事务开始更新数据,但是这个事务并没有完全提交,这个时候第二个事务开始读取数据,把第一个事务所更改的数据读了出来, 第二个事务读取的数据时临时的,因为有可能第一个事务最终有可能做回滚操作 不 ...
- RobotFrameWork(六)控制流之For循环
转自: http://blog.csdn.net/mengfanbo123/article/details/9033645 For循环 函数结构范例: :For 变量 IN 序列(or 列表) 关 ...
- java基本算法之冒泡排序
冒泡排序:是一种较简单的排序算法.它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小:如果前者比后者大,则交换它们的位置.这样,一次遍历之后,最大的元素就在数列的末尾! ...