如何只输出像这样的目录和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);
}
}