`
woxiaoe
  • 浏览: 284481 次
  • 性别: 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控制windows鼠标键盘

    总之,"java控制windows鼠标键盘"项目结合了Java的AWT/SWT库以及可能的WinAPI/JNA技术,为开发者提供了一个全面的解决方案,用于在Windows环境下实现鼠标、键盘和触摸设备的控制。通过这个工具箱,开发者可以轻松地...

    基于java开发的后台管理系统

    在学习过程中,你可以通过分析“cards.7z”这个压缩文件中的代码,了解如何在SSM框架下设计和实现数据库操作、业务逻辑处理以及视图渲染。此外,"erp.sql"文件很可能是数据库脚本,用于初始化或更新系统的数据库结构...

    中控门禁控制器Java二次开发

    为了进行二次开发,我们通常会利用中控提供的SDK(Software Development Kit)或者API文档,这些资源包含了与控制器交互所需的各种指令和协议。 在Java环境下,我们可以通过以下步骤来实现与C100的对接: 1. **...

    java 从hadoop hdfs读取文件 进行groupby并显示为条形图

    Java API提供了访问HDFS的接口,例如`org.apache.hadoop.fs.FileSystem`类,可以用于读取、写入和管理文件系统中的文件。 2. **Hadoop MapReduce**:MapReduce是Hadoop用于并行处理和分析大数据的编程模型。在GROUP...

    java多线程加队列上传文件_后台处理

    通过以上分析可以看出,Java多线程加队列上传文件的实现不仅涉及基础的网络编程和文件操作知识,还需要掌握高级的多线程管理和并发控制技术。这种技术方案适用于需要高效处理大量文件上传请求的场景,比如云存储服务...

    前台从java后台获取excel表格并下载

    首先,标题"前台从java后台获取excel表格并下载"表明我们需要实现一个功能,即前端用户请求时,由Java后台生成Excel文件,然后提供下载链接或直接触发下载。这个过程涉及到的主要技术栈是Eclipse、Maven、Spring MVC...

    电子商城(java)

    5. **项目文档**:项目文档可能包括需求分析、系统设计、开发过程、测试报告等内容,对理解项目结构和功能有重要作用。对于学习者来说,这些文档可以提供宝贵的参考信息。 6. **开发文档**:这部分可能包含了开发者...

    网站后台java模板

    例如,可以创建一个用于显示用户信息的自定义标签,这样在多个页面中需要显示用户信息时,只需插入该标签,而无需重复编写相同的Java代码。 自定义标签的创建通常包括以下步骤: 1. 定义标签接口(Tag Interface)...

    java实现本地读取图片存储到数据库中并在html网页显示

    在Java中,我们可以使用`java.io`和`java.nio`包中的类来读取和处理二进制文件。 1. **读取本地图片**: 使用`java.io.FileInputStream`或`java.nio.file.Files`可以读取本地图片文件。例如,通过以下代码片段,...

    java快速导出几十万百万生成DBF文件数据后台内附有javadbf.jar

    7. **兼容性和版本控制**: `javadbf.jar`可能支持不同版本的DBF格式,确保选择与目标系统兼容的格式进行操作。 通过以上方法,Java开发者可以利用`javadbf.jar`库高效地处理大规模的DBF数据。无论是在数据分析、...

    JAVA程序后台管理系统,下载及能运行

    【JAVA程序后台管理系统】是一种基于Java编程语言开发的软件系统,主要用于实现企业的后台管理功能,如用户管理、数据处理、权限控制等。这样的系统通常包括多个模块,每个模块负责不同的业务逻辑,以满足企业的多样...

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

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

    文件上传并读取plupload与java后台的整合实例

    3. **创建上传控制器**:在Java后端,创建一个Spring MVC控制器方法,接收上传的文件。这个方法应使用`@RequestParam("file") MultipartFile file`注解来获取上传的文件。例如: ```java @RequestMapping(value = ...

    java 编写的二级文件管理系统

    树形结构允许用户展开和折叠目录,查看文件层次,而表格管理则可能用于显示文件的详细信息,如文件名、大小、创建日期等。 为了实现这样的系统,开发者需要掌握以下关键知识点: 1. **Java基础**:包括类、对象、...

    Java远程控制源代码

    在远程控制程序中,它们用于构建用户界面,显示远程计算机的屏幕、提供控制选项(如鼠标点击、键盘输入)以及文件管理界面。 3. Socket编程:Java的Socket类提供了网络通信的基础,使得数据可以在客户端和服务器...

    Java后台的word生成

    在Word生成的场景中,你可以将它与Apache POI结合,利用FreeMarker模板定义文档结构和内容,然后在Java代码中填充数据。FreeMarker模板文档可以包含变量和控制结构,比如条件语句和循环,使得文档生成更加灵活。 3....

    带进度条的文件上传下载组件(JAVA)

    这个名为“带进度条的文件上传下载组件(JAVA)”的项目,显然聚焦于提供一个用户友好的交互体验,通过显示进度条来增强用户体验,使用户能够清晰地看到文件上传或下载的进度。下面我们将深入探讨这一组件涉及的主要...

    java实现windows文件系统操作监控

    5. **文件检索**:文件检索可能涉及到遍历目录结构,查找特定类型的文件或满足特定条件的文件。Java的`java.io.File`类提供了便利的方法,如`listFiles()`和`exists()`,用于实现这个功能。 6. **文件保护**:为了...

    微信的登录-java后台

    最后,`wxLogin`这个文件可能是实现微信登录功能的代码示例或者相关配置文件,建议仔细研究其中的逻辑和结构,以便更好地理解和实施微信登录功能。在实际开发中,可以结合Spring Boot、Spring Security等框架来简化...

Global site tag (gtag.js) - Google Analytics