`
woxiaoe
  • 浏览: 276708 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java 控制台下显示文件结构

    博客分类:
  • Java
阅读更多

题目:

 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求:
1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;
2. 输入: java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)
3. 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本—|形式树状显示;
4. 输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;(30分)
 

 

这一题最重要的部分应该是的道当前类class文件所在的目录,和 显示出目录的树状结构。

因为当前类目录 是不变的,所以可以将其生命常量

static final File CURR_FILE = new File(Folder.class.getResource("/").getPath());//当前文件目录

 

树状结构可以用深度优先来实现,同时要注意缩进,在我的代码中没深入一层缩进加两个空格。

但是最后运行的效果和上面的还是有点不同,主要在树的边上面。

 

我将生成的文件放入System32中,然后希望在控制台中直接可以运行,这个要如何实现呢,通过批出理文件来写吗,可我的批处理文件只能在System32目录中能运行,在其他的目录中就报java.lang.ClassNotFoundException: Folder

希望有高手能提供解决方法。谢谢

我的批处理文件

set PATH C:\WINDOWS\system32
java Folder %1

代码:

import java.io.File;

public class Folder {
	enum Commands{SHOW,ADD,DEL}//命令参数
	static final File CURR_FILE = new File(Folder.class.getResource("/").getPath());//当前文件目录
	public static void main(String[] args) {
		int len = args.length;
		String command;
		switch (len) {
		case 0:
			command = null;
			execute(command,Commands.SHOW);
			break;
		case 1:	
			command = args[0];
			execute(command,Commands.SHOW);
			break;
		case 2:
			Commands commandType = null;
			if(args[0].toLowerCase().equals("add")){
				commandType = Commands.ADD;
			}else if(args[0].toLowerCase().equals("del")){
				commandType = Commands.DEL;
			}else{
				System.out.println("无此方法");
				break;
			}
			execute(args[1], commandType);
			break;
		default:
			break;
		}
	}
	private static void execute(String command, Commands type) {
		switch (type) {
		case SHOW:
			File file;
			if(command == null){//显示当前目录
				file = CURR_FILE;
			}else{
				file = new File(command);
			}
			show(1,file);
			break;
		case ADD:
			file = new File(CURR_FILE,command);//在当前目录下新建一个文件
			file.mkdir();
			show(1, CURR_FILE);
			break;
		case DEL:
			file = new File(CURR_FILE,command);
			file.delete();
			show(1, CURR_FILE);
			break;
		default:
			break;
		}
	}
	private static void show(int space,File...files) {
		StringBuffer  spaceStr = new StringBuffer("");
		for(int i = 1; i <space; i++){
			spaceStr.append(" ");
		}
		if(space != 1){//如果不是显示根目录,这要有树的边
			spaceStr.append("|——");
		}
		for(File file : files){
			System.out.println(spaceStr.toString() + file.getName());
			if(file.isDirectory()){
				show(space + 2,file.listFiles());
			}
		}
		
	}

}

 

  • 大小: 2.6 KB
1
2
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    FileUploadUtil.java(文件上传工具类)

    递归删除目录下的所有文件及子目录下所有文件,函数名:getFile 作用:使用递归,输出指定文件夹内的所有文件 参数:path:文件夹路径 前置空格缩进,显示文件层次结构,通过文件名称获取导入文件到temp文件夹下文件,...

    基于Java的视频会议系统(软件程序+WORD论文文档).zip

    基于Java的视频会议系统(软件程序+WORD论文文档) 2.1.1 技术可行性 网络视频会议是顺应市场的需求而设计的。采用JAVA 编程语言,用eclipse开发平台实现。用到多媒体技术(JAVA 多媒体框架JMF),视频和音频用TRP...

    java基于ssm的疫情之下社区管理系统论文文档

    java基于ssm的疫情之下社区管理系统论文文档,1万多字。 目 录 摘 要 I Abstract II 第1章 前 言 3 1.1 研究背景 3 1.2 研究现状 3 1.3研究内容 3 第2章 系统开发环境 5 2.1 java技术 5 2.2 Mysql数据库 6 2.3 B/S...

    java范例开发大全源代码

     实例119 在指定的目录下创建多个临时文件 158  实例120 删除指定目录下的文件 160  实例121 移动指定目录下的文件 163  实例122 文件搜索引挚 167  7.2 字节流 169  实例123 复制指定目录下的文件 ...

    Java范例开发大全 (源程序)

     实例119 在指定的目录下创建多个临时文件 158  实例120 删除指定目录下的文件 160  实例121 移动指定目录下的文件 163  实例122 文件搜索引挚 167  7.2 字节流 169  实例123 复制指定目录下的文件 170 ...

    Java代码生成器xCode

    3)src.main 包下有三个文件夹,Java文件夹很明显,是Java文件相关。 resources文件夹是 配置相关的文件夹,包括spring相关配置,Mybatis相关配置,数据库相关配置,redis相关配 置都在此文件夹下,webapp文件夹下...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    Java五子棋设计报告.doc

    表2-1主页面表 "包名 "作用 " "src "容纳所有文件 " 表2-2文件表 "文件名 "作用 " "Game.java "运行文件 " "GameFrame.java " " "Cheerup.java " " "PaintPanel.java " " 5 系统功能结构 3.1详细设计 1. 系统模块...

    JSP博客管理系统myeclipse开发mysql数据库mvc结构java编程

    JSP博客管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助 mvc结构,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 此次系统主要在JSP的基础上,结合Servlet技术并以...

    基于JAVA的飞机订票系统软件源码+论文文档资料说明.zip

    基于JAVA的飞机订票系统软件源码+论文文档资料说明: jcommon-1.0.0.jar jfreechart-1.0.1.jar plane plane.dmp plane.sql 机票预订系统需求 (修复的).docx 蜗牛组项目完成进度.docx 项目截屏 项目答辩.ppt 项目答辩...

    java毕业设计之校园视频监控系统(ssm+jsp完整源码+说明文档+LW+PPT).zip

    java毕业设计之校园视频监控系统(ssm+jsp完整源码+说明文档+LW+PPT) 一、用户功能 该部分内容提供首页,校园监控,公告信息,留言板,个人中心,后台管理等功能。 二、视频管理员功能 该部分内容提供个人中心,...

    java 面试题 总结

    忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 25、short s1 = 1; s1 =...

    Java开源的下一代社区平台Symphony.zip

    对于测试帖,可以使用 Sandbox 机制:带有 Sandbox 标签的帖子将视为测试帖,不会显示在首页或是某领域内,只会展现在发帖者自己的帖子列表中。 人性化的回帖交互 实时呈现:回帖提交后其他浏览者可以不刷新...

    java范例开发大全

    实例119 在指定的目录下创建多个临时文件 158 实例120 删除指定目录下的文件 160 实例121 移动指定目录下的文件 163 实例122 文件搜索引挚 167 7.2 字节流 169 实例123 复制指定目录下的文件 170 实例124 显示文件中...

    【文献综述】基于JAVA的俄罗斯方块游戏设计与实现.pdf

    实现跨平 台性的方法是大多数编译器在进行 Java 语言程序的编码时候会生成一个用字节码 (Bytecode)写成的"半成品" ,这个"半成品"会在 Java 虚拟机[7](解释层)的帮助下运 行,虚拟机会把它转换成当前所处硬件...

    基于SSM, Spring, Java实现的都市供求信息网

    都市供求信息网分为前、后台两部分设计,前台主要实现信息的显示、搜索与发布功能,其中信息的显示包括列表显示与详细内容显示,而列表显示,又分为首页信息列表显示、查看某类别下所有信息的列表显示和搜索结果列表...

    JAVA高并发高性能高可用高扩展架构视频教程

    打造高效代码结构(java性能优化) 新版本通俗易懂_观察者模式递进时讲解 ibatis连接数据库 高并发之单(多)生产者消费者线程 高并发复用数据库链接技术详解之数据库连接池 类加载器的高级特性(自定义类加器实现加密...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    java面试题

    Struts2只是起到一个数据接收和转接的功能,就是Controller控制器,而传来数据的页面叫view显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的连接。 heap和stack有什么区别? 答:...

Global site tag (gtag.js) - Google Analytics