怎么列出一个目录下的所有子目录?

aixy 2003-08-25 11:07:56
用File的list()方法可以列出所有的某目录下的文件和子目录,但我现在只想列出目录,不想列出文件,用什么方法呢?
...全文
357 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Djava 2003-08-25
  • 打赏
  • 举报
回复
import java.io.FilenameFilter;
import java.io.File;

public class ListAllDir implements FilenameFilter {
public static void main(String[] args) throws Exception {
File file=new File("d:/"); //replace your directory here
if (file.isDirectory()){
String[] files=file.list(new ListAllDir());
for (int i=0;i<files.length;i++){
System.out.println(files[i]);
}
}
}

public boolean accept(File parm1, String parm2) {
return new File(parm1+"/"+parm2).isDirectory();

}
}

aixy 2003-08-25
  • 打赏
  • 举报
回复
哦,谢谢了。判断一下怕影响效率,我还以为还有什么更好的方法。
那就还是判断一下吧!
danceflash 2003-08-25
  • 打赏
  • 举报
回复
判断一下啦
是目录就显示
不是目录就忽略
dutbreak 2003-08-25
  • 打赏
  • 举报
回复
// Process all files and directories under dir
public static void visitAllDirsAndFiles(File dir) {
process(dir);

if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
visitAllDirsAndFiles(new File(dir, children[i]));
}
}
}

// Process only directories under dir
public static void visitAllDirs(File dir) {
if (dir.isDirectory()) {
process(dir);

String[] children = dir.list();
for (int i=0; i<children.length; i++) {
visitAllDirs(new File(dir, children[i]));
}
}
}

// Process only files under dir
public static void visitAllFiles(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
visitAllFiles(new File(dir, children[i]));
}
} else {
process(dir);
}
}
aixy 2003-08-25
  • 打赏
  • 举报
回复
送分帖啊!怎么没人来?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧