我怎样才能像这样只输出目录和pdf文件
[目录]
_____blabla.pdf
_____fefewfew.pdf
[下一个目录]
_____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);
}
}