如何使用Java在文件系统中"四处走动"

Joh*_*nes 4 java linux filesystems

我想从java中搜索文件夹/目录,然后进入java中的那些文件夹/目录.我想这叫做系统工具?那里有任何教程,或关于这个主题的书籍?

谢谢 ;)

san*_*pta 9

我使用此代码获取文件夹中的所有ZIP文件.以递归方式调用此方法,一次又一次地检查文件对象是否为子目录.

public List<String> getFiles(String folder) {

List<String> list = new ArrayList<String>();
        File dir = new File(folder);
        if(dir.isDirectory()) {
            FileFilter filter = new FileFilter() {

                public boolean accept(File file) {
                    boolean flag = false;
                    if(file.isFile() && !file.isDirectory()) {
                        String filename = file.getName();
                        if(!filename.endsWith(".zip")) {
                            return true;
                        }
                        return false;   
                }

            };
            File[] fileNames = dir.listFiles(filter);
            for (File file : fileNames) {
                list.add(file.getName());
            }
            return list;
Run Code Online (Sandbox Code Playgroud)

}


Gad*_*adi 5

您可以使用Apache Commons FileUtils(请参阅:http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html),特别是那里的listFiles方法,它可以递归地执行此操作,使用过滤器(因此它可以节省您自己的递归写入并回答您提到的搜索).