怎么快速查找某一个目录上指定格式的一个文件

如何快速查找某一个目录下指定格式的一个文件
[/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服务器的链接
		}