`
haosam
  • 浏览: 10244 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

如何快速查找某一个目录下指定格式的一个文件

    博客分类:
  • java
 
阅读更多
[/size][size=large]
以下代码实现了在某个文件目录下快速查找某一个文件:

它的适用情况: 一个目录底下有多个文件(不含文件夹),且某种格式的文件只有一个
一般的方法是遍历整个文件夹,直到找到某个特定的文件,我采用的思路大体也一样,只不过稍微做了一些修改,采用双向遍历,这样速度比原来快了不少,要是有更好的方式,希望大牛们多指点。

问题原型: 在某一个目录下存在很多XML格式的文件和一个XDB格式的文件,每发送完一个XML文件就要发送相应的一个同名的XDB文件,所有XML的文件结构都一样。这个xdb文件就相当于这个XML的描述文件。

好了 ,废话不说了, 下面请看代码:



		// 获得parentDir目录下所有的文件			
		File[] strList = parentDir.listFiles();
	  
		// 初始化FTP服务器并打开链接

		try {
	                 // 记录xdb的文件路径
			 File xdbFile = null;
		    // 遍历文件目录并开始向FTP发送文件
			for (int i = 0; i < strList.length; i++) {
				
					String fileName = strList[i].getName();
					String newFileName = null;
					// 判断当前文件是否是XML格式的数据文件
					if(fileName.toLowerCase().endsWith(".xml")){
						向FTP服务器发送XML文件

						// 获得XML文件的名称,将xdb文件设置成与XML同名的文件
						String[] xmlName = fileName.split("\\.");
						newFileName = xmlName[0] + ".xdb";
					}else if (fileName.toLowerCase().endsWith(".xdb")){
						xdbFile = strList[i];
						continue;
					}
					
					/**
					 * 如果当前文件不是xdb格式的数据文件,则遍历文件目录中剩余的文件,找到xdb格式的数据文件
					 * 在遍历目录中剩余的文件时采用双向遍历,提高查找文件的速度
					 */
		             if (null == xdbFile) {
		            	int n = i;
		            	for (int j = strList.length-1-n ; j > n ; j--) {
		            		if ( strList[j].getName().toLowerCase().endsWith(".xdb")){
		            			xdbFile = strList[j];
		            			break;
		            		} else if (strList[n+1].getName().toLowerCase().endsWith(".xdb")) {
		            			xdbFile = strList[n+1];
		            			break;
		            		} else {
		            			n++;
		            		}
		            	}
					}
		            
		                 // 向FTP服务器发送与XML同名的XDB格式文件
	
		  }
		}  finally {
			//关闭FTP服务器的链接
		}


分享到:
评论

相关推荐

    C# 快速文件搜索 查找

    C#快速文件搜索C#快速文件搜索C#快速文件搜索C#快速文件搜索

    易语言在多个txt文件里面查找某文本

    易语言在多个txt文件里面查找某文本,快速查询多个txt里面是否含有某个文本。@249371240。

    Android快速查找手机文件内某种类型文件,可以调用系统自带工具打开文件

    Android快速查找手机文件内某种类型或者某几种类型文件,而且可以调用系统自带工具打开文件,不存在媒体库文件不全的问题。

    入门学习Linux常用必会60个命令实例详解doc/txt

    immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。 -------------------------------------------------------------------------------- Linux必学的60个命令(1)-安装与登陆命令 login 1...

    重复文件查找王 v1.8.rar

    亲爱的朋友,您正在使用的是“重复文件查找王”,一款为您以最快的速度找出指定目录中内容重复的文件列表,便于您据此清理文件,减少重复文件对磁盘空间的占用。本工具的主要功能:  提供7种匹配方法,我们称之为...

    大量批处理实用程序例程

    全盘删除每个文件夹下的指定文件.cmd 全盘搜索指定文件.cmd 全盘查找QQ.exe并执行.cmd 创建url格式的快捷方式.cmd 删除N天之前的文件.cmd 删除当前目录下及其子文件夹中所有的空文件夹.cmd 删除所有以数字命名的...

    Celerity C/C++源代码阅读和维护器

    通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等...

    迅捷(Celerity):功能强大的C/C++源代码阅读和维护器。

    通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、所有的代码文件、词汇索引、索引结果、文件包含关系、宏定义、数据结构和函数定义、可扩展的函数定义、函数调用关系...

    C/C++源代码分析器迅捷10.6.1.0

    对每一个打开的源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的代码文件、词汇索引、宏定义、数据结构和函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等...

    迅捷(Celerity) CC++源代码分析器

    对每一个打开的源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的代码文件、词汇索引、宏定义、数据结构和函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等...

    C/C++代码分析、阅读

    对每一个源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、分文件夹的定义目录、构造层次、函数...

    Celerity C/C++源代码阅读和维护器7.7.0.0

    通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等...

    WinCatalog2014_v6.2中文破解版.rar

    WinCatalog2014是一款媒体分类管理索引工具,它可以对指定的磁盘分区/文件夹进行快速扫描,将扫描的文件信息索引保存到自身的数据库中,在你想要查找某一类型的文件时,可以进行快速查找你要搜索的文件,从而能够...

    2010Excel使用技巧大全(超全).pdf

    14. 快速查找10 15. 修改默认文件保存路径10 16. 指定打开的文件夹10 17. 在多个EXCEL工作簿间快速切换10 18. 快速获取帮助11 19. 创建帮助文件的快捷方式11 20. 双击单元格某边移动选定单元格11 21. 双击单元格某边...

    C/C++源代码阅读和维护器 7.6.0.0

    通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等...

    Excel 使用技巧集.doc

    14、快速查找 4 15、修改默认文件保存路径 5 16、指定打开的文件夹 5 17、在多个Excel工作簿间快速切换 5 18、快速获取帮助 5 19、创建帮助文件的快捷方式 6 20、双击单元格某边移动选定单元格 6 21、双击...

    Celerity C/C++源代码阅读和维护器8.0.0.0

    通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等...

    delphi 开发经验技巧宝典源码

    0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...

    Excel新增工具集

    9、当前工作表中行记录按某一列指定的类别拆分成组工作簿:类似Excel自带的高级筛选功能,可以把一个年级各班都在同一个工作表上的学生名单(成绩单)拆分成每个班的名单(成绩单),发给班主任。 (八)同一工作簿...

Global site tag (gtag.js) - Google Analytics