[/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服务器的链接
}
分享到:
相关推荐
它允许我们指定一个目录路径,然后返回该目录下所有匹配指定条件的文件名。例如,如果我们想要在当前目录下查找所有.txt文件,可以这样写: ```csharp string[] textFiles = Directory.GetFiles(".", "*.txt"); ...
首先依次查找当前目录下的每一个实体(文件或是子目录),如果是某一子目录,则进入该子目录并递归调用函数 Search_Directory 进行查找,查找完毕之后,再返回上一级目录;如果不是子目录而是某一文件,则判断其是否...
`README.md`文件通常是一个Markdown格式的文档,用于提供关于批处理文件的说明和使用指南。在这个场景中,它可能包含了如何运行`rm.bat`,可能的风险,以及如何更改批处理文件以适应不同扩展名的文件等信息。 总的...
2. 使用`获取目录文件列表`命令获取该路径下所有的TXT文件。 3. 对每一个文件名,执行以下操作: - 使用`打开文件`打开文件,获取文件句柄。 - `读文件`读取整个文件内容。 - 使用`字符串查找`检查内容中是否包含...
2. **快速索引**:在搜索之前,它可能创建一个索引,将`jar`文件中的所有类名存储在一个数据结构中,以便于快速查找。 3. **匹配算法**:工具会使用精确匹配或模糊匹配算法,比如正则表达式,来查找包含指定类名的`....
标题中的“VB查找文件(可搜索子文件夹)”指的是使用Visual Basic(VB)编程语言编写的一个程序,该程序能够遍历指定的目录及其所有子目录,查找并列出指定类型的文件。这个功能在处理大量文件时非常实用,比如在...
这个场景下,我们关注的焦点是如何在一个长文件中高效地查找特定的字符串。这通常涉及到编程技术,如文本处理算法,以及可能的工具或语言支持。下面将详细介绍这个主题。 首先,我们要理解查找字符串的基本方法。最...
这种方法适用于需要在Windows环境下快速查找文件的应用场景。值得注意的是,在实际应用中还需要考虑到异常处理以及更加复杂的文件过滤逻辑,以提高程序的健壮性和灵活性。此外,还可以考虑使用多线程技术来进一步...
在IT领域,文件内容查找工具是一种非常实用的软件或应用程序,它允许用户在大量文件中高效地搜索特定的文本内容。这种工具对于开发者、数据分析师、文档管理者等专业人士尤其重要,因为他们经常需要处理大量文件并...
本篇文章将深入探讨如何高效地在一个长文件中查找指定的字符串,并以提供的两个文件"SCAN.BAS"(一个BASIC语言源代码文件)和"README.TXT"(可能是一个文本说明文件)为例,来介绍相关的方法和技术。 首先,让我们...
这样,我们可以快速查找并比对两份文件中的行。 4. **比对过程**:遍历第一个文件,将其数据加载到HashMap中。然后遍历第二个文件,对于每一行,检查它是否存在于HashMap中。如果存在,比较指定列的值;如果不存在...
* -type 查找某一类型的文件 * -size n:[c] 查找文件长度为 n 块的文件 * -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 * -fstype 查找位于某一类型文件系统中的文件 * -mount 在查找...
这种工具通常用于搜索指定目录下的所有文件,或仅搜索指定文件中的文本字符串。例如,Windows系统自带的“Find”命令和“FindStr”命令,以及在Linux/Unix环境中广泛使用的“grep”命令,都是典型的字符串查找工具。...
Linux 查找命令大全及相关参数详解 Linux 查找命令是 Linux 系统中...`find` 命令是一个非常有用的工具,可以帮助我们快速查找文件和目录。通过了解 `find` 命令的参数和使用方法,我们可以更好地管理我们的文件系统。
压缩包子文件的文件名称列表中有一个名为“查找某目录下的所有文件.pas”的文件。这是一个Pascal源代码文件,很可能包含了实现文件查找功能的主要算法和逻辑。通过阅读和理解这段代码,我们可以学习到如何在Delphi中...
本文将详细介绍一个用C++实现的程序,该程序可以在指定文件夹下的所有文件中查找指定的单词,并输出该单词所在的文件路径及其出现的具体行号。 #### 技术栈 - **语言**:C++ - **平台**:Windows - **编译器**:...
标题中的“清除某一目录下包括子目录下所有文本中特定标志的VB程序”是指通过编写VB(Visual Basic)脚本来实现对指定目录及其子目录下的文本文件进行批量处理,删除或替换特定的字符串,比如木马代码。这种操作在...
这个命令告诉CMake去查找每个指定子目录中的`CMakeLists.txt`文件,并将它们纳入构建过程。 例如,假设你有以下项目结构: ``` project/ |-- CMakeLists.txt (顶级CMakeLists) |-- src/ | |-- CMakeLists.txt (src...
总结来说,"根据后缀名、关键字等搜索的一个搜索文件的工具"利用了计算机科学中的文件系统、后缀名识别、字符串匹配算法、遍历策略和可能的索引技术,为用户提供快速、精准的文件查找服务。了解这些基础原理,可以...