要参照dos命令dir /s的显示结果
时间: 2023-10-23 11:09:42 浏览: 48
如果要让Java程序的输出结果与`dir /s`命令的显示结果相同,可以按照以下方式修改代码:
```java
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Dir {
public static void main(String[] args) {
String path = "C:\\Users\\username\\Desktop\\test"; // 需要列出的目录路径
File dir = new File(path);
printDir(dir);
}
public static void printDir(File dir) {
if (dir.isDirectory()) {
System.out.println(" Directory of " + dir.getAbsolutePath());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm a");
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
printDir(file);
} else {
String fileName = file.getName();
long fileSize = file.length();
String fileLastModified = sdf.format(new Date(file.lastModified()));
System.out.printf(" %s %20d %s\n", fileLastModified, fileSize, fileName);
}
}
}
}
}
}
```
以上代码在输出目录时添加了`Directory of`前缀,同时在输出文件信息时按照`dir /s`的格式进行了排版。需要注意的是,输出结果可能与`dir /s`命令的显示结果略有不同,因为`dir /s`显示文件大小时使用了KB、MB等单位,而Java程序直接输出了文件大小的字节数。