JAVA-File的应用

/**
     * 2、控制台版文件管理器
    程序运行后显示所有的磁盘,如下所示:
        1.c盘
        2.e盘
        3.e盘
        4.f盘
        请选择:
    如果用户输入了1,回车后,则显示c盘下所有的目录和文件:
        1.c:/a.txt(文件)
        2.c:/programe file(目录)
        3.返回上一层
        请选择:
    如果此时用户选择的是文件,例如输入1,回车,则显示文件的相关操作
        1.查看文件信息
        2.重命名文件
        3.删除文件
        4.移动文件
    如果用户选择的是目录,则继续显示选择目录下的所有文件和目录,以此类推。
     */

static Scanner sc = new Scanner(System.in);
	static File[] list = File.listRoots();	//获取跟目录节点
	public static void main(String[] args) {

//		System.out.println(Arrays.toString(list));
		while(true){
            //遍历根目录
			for (int j = 0; j < list.length; j++) {
				String string = list[j].toString();
            //菜单显示盘名
				System.out.println(j+1+"、"+string.charAt(0)+"盘");
			}
			
			System.out.println("请选择:");
			int next = sc.nextInt()-1;
			//盘名 数组
			File[] file = list[next].listFiles();

			show(file);
				
			}
}
	
//菜单
	public static void a(String... str){
		for(String a: str){
			System.out.println(a);
		}
	}

public static File[] show(File[] file) {

		//遍历根目录文件		
		for (int i = 0; i < file.length; i++) {
			String name = file[i].getName();
			if(file[i].isFile()){
				System.out.println(i+1+"、"+file[i]+"(文件)");
			}else {
				System.out.println(i+1+"、"+file[i]+"(目录)");
			}
		}
		System.out.println("请选择:");
		int n1 = sc.nextInt()-1;
		
			if(file[n1].isFile()){
				//是文件
				File file2 = file[n1];
					while(true){
						a("1.查看文件信息","2.重命名文件","3.删除文件","4.移动文件","任意.返回上一层");
						System.out.println("请选择:");
						String n2 = sc.next();
	
						if(n2.equals("1")){
							System.out.println("文件信息");
							System.out.println("文件名:"+file2.getName());
							System.out.println("文件大小:"+file2.length());
							System.out.println("文件路径:"+file2.getPath());
							
							System.out.println("输入任意键返回");
							if("".equals(sc.next()));
						}else if(n2.equals("2")){
							System.out.println("重命名文件");
							String rename = sc.next();
							//获取后缀
							String name = file2.getName();
							String sb = name.substring(name.lastIndexOf("."));
							
							file2.renameTo(new File(file2.getParent()+"/"+rename+sb));
							System.out.println("修改成功");
							
							System.out.println("输入任意键返回");
							if("".equals(sc.next()));
							break;
						}else if(n2.equals("3")){
							System.out.println("删除文件");

							file2.delete();
							System.out.println("删除成功");
							System.out.println("输入任意键返回");
							if("".equals(sc.next()));
							break;
						}else if(n2.equals("4")){
							
							System.out.println("移动文件");
							System.out.println("格式:");
							System.out.println("D:/目录/    请输入目录    /文件名");
							String name = file2.getName();//文件名
							String parent = file2.getParent();//路径目录
							String re = sc.next();
							
							file2.renameTo(new File(parent+"/"+re+"/"+name));
							System.out.println("移动成功");
							break;
						}
						else{
							break;
						}
					}
					
						
						
					
				}else{
				//是目录就循环
				System.out.println("目录");
				show(file[n1].listFiles());
			}
		
		return file;
	}

总结:写法粗糙,API掌握不熟练。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值