java中打开文件目录的递归并实现文件目录分层显示,纪录实时进度

 我来答
laobaitu0322
2015-07-30 · TA获得超过744个赞
知道小有建树答主
回答量:900
采纳率:33%
帮助的人:647万
展开全部

试试这个代码。

import java.io.File;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FilesAndDirectories {

public FilesAndDirectories() {

}

public void runTest() {
// list files and folders
String dir = "D:\\temp";
File file = new File(dir);
displayInfo(0, file);
}

private void displayInfo(int depth, File file) {
// Name, Date, Size, Attr
boolean executable = file.canExecute();
boolean readable = file.canRead();
boolean writable = file.canWrite();
boolean hidden = file.isHidden();
boolean directory = file.isDirectory();
long lastModified = file.lastModified();
long length = file.length();
String name = file.getName();
// create ASCII file structure
StringBuilder buf = new StringBuilder();
for (int i = 0; i < depth; ++i) {
buf.append("|");
}
if (directory) {
buf.append("+ ");
}
if (name.isEmpty()) {
buf.append(".");
} else {
buf.append(name);
}
// add modification date
buf.append("\t\t");
Date date = new Date(lastModified);
buf.append(new SimpleDateFormat().format(date));
buf.append("\t\t");
// add file size in kilobytes
long kb = length / 1024;
DecimalFormat format = new DecimalFormat();
format.setGroupingUsed(true);
buf.append(format.format(kb));
buf.append(" KB");
// add read, write, execute attribute flags
buf.append("\t\t");
if (hidden)
buf.append(".");
if (readable)
buf.append("R");
if (writable)
buf.append("W");
if (executable)
buf.append("X");
// print everything to the command line
System.out.println(buf.toString());
File[] children = file.listFiles();
if (children != null) {
for (File child : children) {
displayInfo(depth + 1, child);
}
}
}

public static void main(String[] args) {
new FilesAndDirectories().runTest();
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式