输出pdf文件和filetree中的目录

时间:2016-01-14 22:14:00

标签: java directory filetree

如何只输出像这样的目录和pdf文件

[目录]
_____ blabla.pdf
_____ fefewfew.pdf
[nextdirectory] ​​
_____ afdfsdfsdf.pdf
_____ ...等等

希望得到一些帮助。 这是我的代码:(代码不起作用。只是试了一下) 我只需要在main方法中改变一些东西。其余的都没问题。

import java.io.File;

public class DirPrinter implements DirVisitor{

    private String indent;

    public DirPrinter(){
        indent = "";
    }

    @Override
    public void enter(File dir) {
        System.out.printf("%s[%s]%n", indent, dir.getName());
        indent += "  ";
    }

    @Override
    public void visitFile(File f) {
        System.out.printf("%s%s%n", indent, f.getName());
    }

    @Override
    public void exit(File dir) {
        indent = indent.substring(2);
    }

}
------------------------------------------------------------------------
import java.io.File;

public interface DirVisitor {
    void enter(File dir);
    void visitFile(File f);
    void exit(File dir);
}
------------------------------------------------------------------------
import java.io.File;

public class FileTree {

    public static void traverse(File dir, DirVisitor v){
        if(!dir.isDirectory()){
            throw new IllegalArgumentException("No directory!");
        }
    }
}
------------------------------------------------------------------------
import java.io.File;
import java.io.FileFilter;

public class PdfFilter implements FileFilter{

    @Override
    public boolean accept(File pathname) {
        return (pathname.getName().toLowerCase().endsWith(".pdf") ||
                pathname.isDirectory());
    }
}
------------------------------------------------------------------------
import java.io.File;

public class Main {
    public static void main(String[] args){
        PdfFilter pdf = new PdfFilter();
        File directory = new File("C:/Users/Baum/Documents");
//      System.out.println(pdf.accept(directory));

        FileTree ft = new FileTree();
        DirVisitor d = new DirPrinter();

        String[] everythingInThisDir = directory.list();
        for (String name : everythingInThisDir) {
            System.out.println(name);
        }



        ft.traverse(directory, d);
        d.enter(directory);
        d.visitFile(directory);
        d.exit(directory);
    }
}

0 个答案:

没有答案
相关问题