[导入]java 显示树形文件结构,类似windows的tree命令

[导入]java 显示树形文件结构,类似windows的tree命令

   本来是个练习题,自己做了做,还行。但是看到别人的代码比我的更好。所以,这里就贴出了别人的代码。我的就只有让它沉睡吧……。是别人的,算是转载吧。转自:他的电脑。

    主要思想,递归调用。
import java.io.File;

public class ShowTree {
	static void displayDir(File dir, String prefix) {
		System.out.print(prefix);
		System.out.println(dir.getName());
		
		prefix = prefix.replace("├", "│");
		prefix = prefix.replace("└", " ");
		if (dir.isFile()) {
			return;
		}
		File files[] = dir.listFiles();
		
		for (int i = 0; files != null && i < files.length; i++) {
			if (i == files.length -1 ) {
				displayDir(files[i], prefix + "└");				
			} else {
				displayDir(files[i], prefix + "├");
			}
		}
	}
	
	static void addDir(String parent, String dir) {
		File file = new File(parent, dir);
		if (!file.exists() || !file.isDirectory()) {
			file.mkdir();
		}
	}
	
	static void delDir(String parent, String dir) {
		File file = new File(parent, dir);
		if (file.exists() && file.isDirectory()) {
			file.delete();
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String targetDirName = "c:\\";
		String operateName = "";
		String newDirName = null;
		
		switch(args.length) {
		case 1:
			targetDirName = args[0];
		case 0:
			displayDir(new File(targetDirName), "");
			break;
		case 2:
			if (args[0].equals("add")) {
				addDir(targetDirName, args[1]);
			} else if (args[0].equals("del")) {
				delDir(targetDirName, args[1]);
			}
			displayDir(new File(targetDirName), "");
		}
	}

}


运行结果如图:(局部,哈哈哈)


已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐
  • ThoughtWorks揭秘持续集成之道-相信身为企业核心的您一定不会错过
  • 【杭州】高薪招聘java高级工程师,项目经理,架构师
  • 参加赢在淘宝,获取开放平台高级权限
  • 上海30-40万年薪招聘金融咨询顾问




文章来源: http://lupingzi.javaeye.com/blog/509194

你可能感兴趣的:([导入]java 显示树形文件结构,类似windows的tree命令)