正在搜索扩展名为.java的文件

时间:2010-02-06 18:45:09

标签: java file search

有没有办法首先过滤所有扩展名为“java”的文件,然后搜索查找带有该扩展名的文件?你能解释一下代码片段吗?谢谢

4 个答案:

答案 0 :(得分:3)

我也投票支持Apache Commons。

http://www.kodejava.org/examples/359.html给出了一个用法示例:

package org.kodejava.example.commons.io;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.util.Collection;
import java.util.Iterator;

public class SearchFileRecursive {
    public static void main(String[] args) {
        File root = new File("/home/foobar/Personal/Examples");

        try {
            String[] extensions = {"xml", "java", "dat"};
            boolean recursive = true;

            //
            // Finds files within a root directory and optionally its
            // subdirectories which match an array of extensions. When the
            // extensions is null all files will be returned.
            //
            // This method will returns matched file as java.io.File
            //
            Collection files = FileUtils.listFiles(root, extensions, recursive);

            for (Iterator iterator = files.iterator(); iterator.hasNext();) {
                File file = (File) iterator.next();
                System.out.println("File = " + file.getAbsolutePath());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

答案 1 :(得分:1)

在Unix上,您可以尝试find <dir> -name '*.java' -exec grep <search string> {} \;

答案 2 :(得分:0)

如果您需要在Java中执行此操作,最简单的方法是使用Apache Commons IO,尤其是FileUtils.iterateFiles()

话虽如此,如果这是一个家庭作业问题,我怀疑你会因为使用上述内容而获得很多分数。我怀疑这个作业的目的是测试你编写递归例程的能力(那里有一个线索!) - 找不到第三方库(本身就是一个有价值的技能,记住)。

答案 3 :(得分:0)

使用GitHub

上的FileSearcher.java可以轻松完成此操作

在整个计算机中查找所有.java文件的示例如下所示:

public class FindDotJava {
    public static void main(String[] args) {
        ArrayList<File> dotJavaFiles = FileSearcher.findFiles(FileSearcher.SEARCH_EVERYTHING, "java");
    }
}

您可以通过将SEARCH_EVERYTHING更改为CURRENT_FOLDER或SUBFOLDERS_AND_CURRENT来轻松搜索当前文件夹或当前文件夹+子文件夹。

我希望这会有所帮助!!!