首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

用递归搜寻磁盘的文件时,为什么D盘都可以搜索,C盘却不能

2013-08-11 
用递归搜索磁盘的文件时,为什么D盘都可以搜索,C盘却不能如题,写的一个搜索.txt的程序,搜索算法的函数形参

用递归搜索磁盘的文件时,为什么D盘都可以搜索,C盘却不能
如题,写的一个搜索.txt的程序,搜索算法的函数形参是一个抽象地址和一个关键字,当把D:/传给算法是就能进入算法并开始搜索,但是C:/却没有办法进入算法,这是为什么,代码附上

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Day1 {
private static List<String> list=new ArrayList<String>();
private static Day1 dayStart = new Day1();
public static void main(String[] args) {
File d = new File("c:/");// 测试一下,File()后面是路径,d是文件,d.getpath是路径
File f = new File(d.getPath());// f是一个路径名
String keyWords = "学习";
list = doSearch(f, keyWords);
//if (list != null) {
 for(String s : list){
 System.out.println(s);
 }
}
// doSearch(f , result);//方法
// for(int j=0;j<result.length;j++)
// System.out.println(result[j]);


public static List<String> doSearch(File apple, String key) {
if (apple == null)
return null;
File[] files = apple.listFiles();
String words = key;
/*
 * 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 数组files中放的是root目录中的所有文件的路径
 */
if (files == null)
return null;
// try{
for (File f1 : files) {
/*
 * 强for循环,遍历f所在磁盘的所有文件
 */
if (f1 == null)
return null;
if (f1.isDirectory())
doSearch(f1, words);
if (f1 != null && f1.getName().toUpperCase().endsWith(".TXT")) {
try {
//list = dayStart.compare(f1, words);
String path = dayStart.compare(f1,words);
if(path!=null&&!path.trim().equals(""))//""
list.add(path);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return list;
}

/*
 * catch(Exception e){ System.out.println(e.getMessage()); }
 */

public String compare(File g, String key) throws IOException {
// compare方法对得到的.txt文件进行相关匹配
//List<String> list = new ArrayList<String>();
FileReader fr = new FileReader(g);// 将文件字节流读入fr
BufferedReader waittocompare = new BufferedReader(fr);// 字符流waittocompare
String message=new String();
String s;
while ((s = waittocompare.readLine()) != null)// 放入字符串中


{
if (s.indexOf(key) != -1)// 检查是否存在
{

message=g.getAbsolutePath();
break;
}
}
return message;
}
}


跑了下
完全可以搜索C盘的
看看你C盘有没有txt文件
txt文件中有没有你要搜索的关键字你那可以跑吗,我这C盘传不进去,可能是机子的问题,设置的有权限吧~~
你可以打印呀下,反正我跑时C盘的文件都列出来了!
你这东西没有输出
可能C盘文件太多
它在一个个的搜索,还是比对关键字
其实在跑,看起来像没跑我是一步一步跟着程序看,在调用方法的时候停住了,不过换成其他的盘的话都没问题,我感觉程序应该没啥问题吧~

客气了

热点排行