盘符下查找文件数量不匹配 的问题

Packer_Z 发布于 2017/05/10 09:48
阅读 77
收藏 0

写了个查找指定文件下文件名带java(不区分大小写)四个字符的文件数量,在其他文件下查找的数量与用windows自带查找的数量一致,可是当查找e盘下所有的文件数量时比用java代码查找的数量少5个。不知道是什么原因。

下面是我通过windows自带的搜索结果

下面的是自己写的代码

public class TestApp {
    public static void main(String[] args) {

        File file = new File("E:\\");
        List<File> list = new ArrayList<File>();
        FileUtil.queryFile(file, Pattern.compile(".*[J|j][A|a][V|v][A|a].*"), list);        
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getAbsolutePath());
        }
        System.out.println(list.size());

}

}

public class FileUtil {

public static void queryFile(File startFile,Pattern regrex,List<File> list){
        File[] files = startFile.listFiles();
        if(files != null){
            for (File file : files) {                
                if(file.getName().matches(regrex.toString())){
                    list.add(file);
                    queryFile(file, regrex, list);
                }else{
                    queryFile(file, regrex, list);
                }
            }
        }    
    }

}

如果将查找的路径改为E:\\Java EE之类的路径的话查找的数量就一致。而且单独查E盘下的第一层和java代码查找的也一致,所以应该不存在遗漏查找的问题,不知道什么原因,望解决.

加载中
0
北极心
北极心

windows加索引在搜

或者你在找个工具查找下,看结果是不是一样的,按说你代码没毛病

0
polly
polly

记得windows查找,默认有一个层的选项,默认是3吧?你检查一下,可能有一些超过3层目录的丢失了

好久不用windows了。

返回顶部
顶部