Java搜索目录中的文件名

package org.akalius.test;

import java.io.File;

/**
* @author Haiping Gong 2008-1-22
*
*/
public class FileSearcher {

private static String searchPath="D:\\Akalius\\work";
private static String searchFileName="URL.txt";
private static File file;

public FileSearcher(String path) {
file=new File(path);
if(!file.isDirectory()){
System.out.println("must be directory");
}
}

/**
* @param args
*/
public static void main(String[] args) {
FileSearcher searcher=new FileSearcher(searchPath);
searcher.findFileName(file,searchFileName);
}

private void findFileName(File f,String name) {
File[] files=file.listFiles();
for(int i=0;i<files.length;i++){
File subFile=files[i];
if(subFile.isFile() && subFile.getName().equals(name)){
System.out.println("search ok, "+subFile.getAbsolutePath());
break;
}
else if(subFile.isDirectory()){
findFileName(subFile,name);
}
else{
continue;
}
}

}

}

递归方法,Java本身效率就很慢,使用递归效率不高,可以写个非递归的方法。代码是深度遍历,如果所找的文件估计所在的目录层次较少,则可以使用List来广度遍历,这样可能效率会高点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值