/*
* 以树状形式显示指定目录下的文件和文件夹
* */
import java.io.*;
public class ListDirectory_File {
public static void main(String[] args) throws Exception {
PrintStream ps = null;
ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(
"D:/1.txt")));
// 将控制台输出设置到指定文件
System.setOut(ps);
String path = "D:\\Program Files";
int level = 0;
file_Tree(path, level);
ps.flush();
ps.close();
}
// 递归方式显示
public static void file_Tree(String path, int level) {
File f = new File(path);
StringBuffer str = new StringBuffer("");
for (int i = 0; i < level; i++) {
str.append(" "); //每一个层次缩进四个空格
}
str.append("├");
str.append("─");
if (f.isFile()) {
System.out.println(str + f.getName());
return;
}
System.out.println(str + f.getName());// 先打印目录出来
File[] listFile = f.listFiles();// 取出该目录下所有文件以及文件夹
int i = 0;
// 开始遍历每一个目录项
for (i = 0; i < listFile.length; i++) {
f = listFile[i];
if (f.isFile()) {
System.out.println(str + f.getName());
} else if (f.isDirectory()) {
// System.out.println(f.getPath());
file_Tree(f.getPath(), level + 1);
} else if (f.isHidden()) {
}
}
}
}
运行结果:
├─Program Files
├─360
├─360Safe
├─360wd.log
├─360zip
├─360zipw.dll
├─config
├─zconfig.xml
├─zdefaultskin
├─zdefaultskin.ui
├─zMiniUI.xml
├─AntiAdwa.dll
├─antiarp
├─snetcfg.exe
├─x64
├─SetupArpX64.exe
├─AntiEng.dll
├─AntiRK.dll
├─AntiSection
├─DropLog
├─list_v01.db
├─BaseExamine.dll
├─BrowserConfigFileInfo.dat
├─CheckAutorun.dll
……