`
haosam
  • 浏览: 10497 次
  • 性别: 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# 快速文件搜索 查找

    它允许我们指定一个目录路径,然后返回该目录下所有匹配指定条件的文件名。例如,如果我们想要在当前目录下查找所有.txt文件,可以这样写: ```csharp string[] textFiles = Directory.GetFiles(".", "*.txt"); ...

    VC++中如何遍历整个目录树查找文件.docx

    首先依次查找当前目录下的每一个实体(文件或是子目录),如果是某一子目录,则进入该子目录并递归调用函数 Search_Directory 进行查找,查找完毕之后,再返回上一级目录;如果不是子目录而是某一文件,则判断其是否...

    windows下如何批量删除当前路径下指定扩展名的文件,看这个bat文件就明白了

    `README.md`文件通常是一个Markdown格式的文档,用于提供关于批处理文件的说明和使用指南。在这个场景中,它可能包含了如何运行`rm.bat`,可能的风险,以及如何更改批处理文件以适应不同扩展名的文件等信息。 总的...

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

    2. 使用`获取目录文件列表`命令获取该路径下所有的TXT文件。 3. 对每一个文件名,执行以下操作: - 使用`打开文件`打开文件,获取文件句柄。 - `读文件`读取整个文件内容。 - 使用`字符串查找`检查内容中是否包含...

    在jar包下找class文件

    2. **快速索引**:在搜索之前,它可能创建一个索引,将`jar`文件中的所有类名存储在一个数据结构中,以便于快速查找。 3. **匹配算法**:工具会使用精确匹配或模糊匹配算法,比如正则表达式,来查找包含指定类名的`....

    VB查找文件(可搜索子文件夹)

    标题中的“VB查找文件(可搜索子文件夹)”指的是使用Visual Basic(VB)编程语言编写的一个程序,该程序能够遍历指定的目录及其所有子目录,查找并列出指定类型的文件。这个功能在处理大量文件时非常实用,比如在...

    如何在一个长文件中查找某一个特定的字符串(2KB)

    这个场景下,我们关注的焦点是如何在一个长文件中高效地查找特定的字符串。这通常涉及到编程技术,如文本处理算法,以及可能的工具或语言支持。下面将详细介绍这个主题。 首先,我们要理解查找字符串的基本方法。最...

    查找文件 某一文件夹

    这种方法适用于需要在Windows环境下快速查找文件的应用场景。值得注意的是,在实际应用中还需要考虑到异常处理以及更加复杂的文件过滤逻辑,以提高程序的健壮性和灵活性。此外,还可以考虑使用多线程技术来进一步...

    文件内容查找工具(用于查找文件内容)

    在IT领域,文件内容查找工具是一种非常实用的软件或应用程序,它允许用户在大量文件中高效地搜索特定的文本内容。这种工具对于开发者、数据分析师、文档管理者等专业人士尤其重要,因为他们经常需要处理大量文件并...

    如何在一个长文件中查找某一个特定的字符串 (2KB)...

    本篇文章将深入探讨如何高效地在一个长文件中查找指定的字符串,并以提供的两个文件"SCAN.BAS"(一个BASIC语言源代码文件)和"README.TXT"(可能是一个文本说明文件)为例,来介绍相关的方法和技术。 首先,让我们...

    java 实现两excel(或csv)文件的比对(以某几列作为键值,比对指定列的值差异)

    这样,我们可以快速查找并比对两份文件中的行。 4. **比对过程**:遍历第一个文件,将其数据加载到HashMap中。然后遍历第二个文件,对于每一行,检查它是否存在于HashMap中。如果存在,比较指定列的值;如果不存在...

    ubuntu系统中文件和内容查找命令总结linux操作系统电脑资料.doc

    * -type 查找某一类型的文件 * -size n:[c] 查找文件长度为 n 块的文件 * -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 * -fstype 查找位于某一类型文件系统中的文件 * -mount 在查找...

    文件字符串查找工具,支持多行的

    这种工具通常用于搜索指定目录下的所有文件,或仅搜索指定文件中的文本字符串。例如,Windows系统自带的“Find”命令和“FindStr”命令,以及在Linux/Unix环境中广泛使用的“grep”命令,都是典型的字符串查找工具。...

    linux 查找命令大全及相关参数详解

    Linux 查找命令大全及相关参数详解 Linux 查找命令是 Linux 系统中...`find` 命令是一个非常有用的工具,可以帮助我们快速查找文件和目录。通过了解 `find` 命令的参数和使用方法,我们可以更好地管理我们的文件系统。

    文件查找器

    压缩包子文件的文件名称列表中有一个名为“查找某目录下的所有文件.pas”的文件。这是一个Pascal源代码文件,很可能包含了实现文件查找功能的主要算法和逻辑。通过阅读和理解这段代码,我们可以学习到如何在Delphi中...

    多文件遍历查找单词

    本文将详细介绍一个用C++实现的程序,该程序可以在指定文件夹下的所有文件中查找指定的单词,并输出该单词所在的文件路径及其出现的具体行号。 #### 技术栈 - **语言**:C++ - **平台**:Windows - **编译器**:...

    清除某一目录下包括子目录下所有文本中特定标志的VB程序

    标题中的“清除某一目录下包括子目录下所有文本中特定标志的VB程序”是指通过编写VB(Visual Basic)脚本来实现对指定目录及其子目录下的文本文件进行批量处理,删除或替换特定的字符串,比如木马代码。这种操作在...

    CMake添加引用多个子目录多个CMakeLists同时编译

    这个命令告诉CMake去查找每个指定子目录中的`CMakeLists.txt`文件,并将它们纳入构建过程。 例如,假设你有以下项目结构: ``` project/ |-- CMakeLists.txt (顶级CMakeLists) |-- src/ | |-- CMakeLists.txt (src...

    根据后缀名、关键字等搜索的一个搜索文件的工具

    总结来说,"根据后缀名、关键字等搜索的一个搜索文件的工具"利用了计算机科学中的文件系统、后缀名识别、字符串匹配算法、遍历策略和可能的索引技术,为用户提供快速、精准的文件查找服务。了解这些基础原理,可以...

Global site tag (gtag.js) - Google Analytics