java 列出目录结构

如题。用java列出一个文件下的所有文件和目录。包括子目录和子文件。同时要记录目录和文件的层数。该如何实现。希望哪位大侠帮忙。谢谢下面的回答。查找所有的文件,能够做到。最... 如题。用java列出一个文件下的所有文件和目录。包括子目录和子文件。同时要记录目录和文件的层数。
该如何实现。
希望哪位大侠帮忙。
谢谢下面的回答。查找所有的文件,能够做到。
最主要是记录当前的目录层数。就是说,要把某个文件是第几级目录记录下来。
展开
 我来答
在大别山看月亮的下弦月
2009-11-10 · TA获得超过789个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:265万
展开全部
public class DirectoryPrinter {

private static List<String> list = new ArrayList<String>();
private static int floor = 0;

public static void printDirectory(File root) {
if (root.isFile()) {
System.out.println(getPreString(floor, root) + root.getName());
} else {
System.out.println(getPreString(floor, root) + root.getName());
floor++;
File[] files = root.listFiles();
setLast(files);
for (File file : files) {
printDirectory(file);
}
floor--;
}
}

private static String getPreString(int floor, File file) {
if (floor == 0)
return "";
String preString = "ㄴ";
for (int i = 1; i < floor; i++) {
file = file.getParentFile();
if (list.contains((file.getAbsolutePath() + file.getName())))
preString = " " + preString;
else
preString = "|" + preString;
}
return preString;
}

private static void setLast(File[] files) {
if (files.length != 0) {
int last = 0;
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory())
last = i;
}
list.add(files[last].getAbsolutePath() + files[last].getName());
}
}

public static void main(String[] args) {
DirectoryPrinter.printDirectory(new File("D://workspace//JavaTest"));
}
}
lvxianling
2009-11-10 · TA获得超过639个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:196万
展开全部
import java.io.File;
public class ShowAllFiles {
public static void main(String[] args) {
PrintFiles.getInstance("D:\\svn\\dgepb\\source\\web\\fs\\js");
}

}
class PrintFiles{
private File file;
private int files=0;
private PrintFiles(String file){
this.file=new File(file);
print(this.file);
System.out.println("共有文件数:"+files);
}
public static PrintFiles getInstance(String file){
return new PrintFiles(file);
}

void print(File f){
if(f.isDirectory()){
File files[]=f.listFiles();
for(int i=0;i<files.length;i++){
print(files[i]);
}
}else if(f.isFile()){
System.out.println(f.getAbsolutePath());
files++;
}else{
System.out.println(f.getAbsolutePath()+" 不是一个有效的文件路径!");
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
渡轮555
2009-11-10 · TA获得超过534个赞
知道小有建树答主
回答量:863
采纳率:100%
帮助的人:657万
展开全部
递归遍历或者非递归遍历,网上好多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式