文件创建、查找和删除

文件创建和查找

经过上次的练习,用心写上一篇博客的感觉还不错,也不知道有没有帮助到别人。今天就再开始别的练习吧!!!(如果大家想看文件复制的话,就先等我学完数据流和对象流吧,我会和缓冲流字节流一起写出来的,但是估计又是一个大坑)。
在这里插入图片描述

简单认识

一、 首先让我们认识一下File这个东西
File类主要通过路径用于文件和目录的创建、文件的查找和文件的删除等,对文件内容本身并没有影响,若想修改文件内容则需流来操作。

**二、**在上代码之前,我们再来了解一下什么是相对路径和绝对路径
所谓相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。(此处照搬百度百科)简单来说,打开你的exlipse,左上角的那个东东就是先对路径
在这里插入图片描述
而他的绝对路径,就是从盘符开始算起,该文件所在的位置。
C:\Users\Administrator\Desktop\课程\查找目录\searchFile\src\searchFile
大家可以自行感受一下二者的区别。
在这里插入图片描述
好,我们要上代码了!

文件夹及文件的创建

	public class FileDemo{
		FileDemo fd=new FileDemo();
	}

	public Boolean createFolder(String path){创建不存在的目录
		File folder=new File(path);	//此处就是创建文件的操作,path为相对路径
		if(!folder.exists()){	//假如文件不存在,exists()是判断是否存在的一个方法
			Boolean b;
			b=folder.mkdirs();	//创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。此处返回不二类型
			if(b){
				System.out.println("创建文件夹成功”);
				return true;
			}
			else{
				System.out.println(“创建文件夹失败”);
				return false;
			}
		}
		System.out.println(“文件夹已存在”);
		return true;
	}
	//这样一个文件夹就创建好啦!!!
	public Boolean createFile(String path){	//创建文件
		File file=new File(path);	//和创建文件夹一样的操作,path为相对路径
		if(!file.exists()){	//如果文件不存在,就要去创建文件,接下来考虑,想要创建的文件的所在目录在不在
			Boolean b=true;假设目录存在
			String folderpath=path.substring(0,path.lastIndexOf("/"));		//substring的作用是返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。这句话中,beginindex的值为0;
lasetIndexOf的作用是返回指定子字符串在此字符串中最右边出现处的索引,也就是把文件所处目录找出来。详细请看下面的图片
			File folder =new File(folderpath);
			if(!folder.exists()){	//如果不存在
				b=createFolder(folderpath)	//调用我们刚刚写的那个创建文件夹的方法
			}
			if(!b) System.out.println(“路径创建失败”);
	
			b=false;		//观测文件是否创建成功
			try {		//至于这里为什么会出现try,大家自己打代码的时候,explise会自动报错……
				b=file.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if(b){
				System.out.println("文件创建成功");
				return true;
			}
			else{
				System.out.println("文件创建失败");
				return false;
			}
		
			
		}
	}

在这里插入图片描述
就是把这个路径找出来,去看他在不在~

文件关键字查找

(在此笑声bibi一句,不用画图轻松好多,希望我在做树的时候可以对我温柔一点)。大家在我的电脑里查找文件的时候会不会都去所搜他的关键字!比如
在这里插入图片描述
我们会在这个小框框里,输入文件后缀,比如 .exe .txt
接下来我们就看看这个东西怎么做的!
(如果大家想看查找内容的话!!对不起我不会)
在这里插入图片描述

/**
*	我们试着搜索所有盘符
*/
	public  int searchKey(String path ,String key){	//肯定用递归写!因为不知道循环到什么时候是个头
		int count=0;	//计算到底有多少个文件
		File folder=new File(path);
		File[] list=folder.listFiles()	//listFiles返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
		if(list==null ||  list.length==0)	//文件夹为空或者文件夹内没有任何内容
			return 0;
		for(int i=0;i<list.length;i++)	{}//遍历每一个文件
			if(list[i].getpath().contains(key){	//获取路径,如果包含key
				System.out.println(list[i].getpath());
				count++;
			}
			count+=searchKey(list[i].getpath(),key);
		}
		return count;
	}

文件及文件夹的删除

	public Boolean deleteFolder_File(String path){
		File file=new File(path);
		if(!file.exists()){
			System.out.println("文件或文件夹不存在,删除失败");
			return false;
		}
		Boolean b;
		if(file.isDirectory()){		//判断其是否为一个目录,只有目录为空时,才可以删除
			File list[]=file.listFiles();
			if(list==null) return false;
			else {
				b=file.delete();
			}
			if(b) {
				System.out.println("文件夹删除成功"); 
				return true;
				}
			else {
				System.out.println("文件夹删除失败");
				return false;
			}
			
		}
		if(file.isFile()){		//判断其是否是一个文件
			b=file.delete();
			if(b) {
				System.out.println("文件删除成功"); 
				return true;
				}
			else {
				System.out.println("文件删除失败");
				return false;
			}
		}
		return true;
	}

好!到此为止,基本操作就结束了!我们来写个主函数,看看效果如何!
在这里插入图片描述

	public static void main(String args[]){
		FileDemo fd=new FileDemo();
		File[] list=fd.searchRoot();
//		int count=0;
//		String[] roots={"G:\\","F:\\","E:\\","D:\\","C:\\"};//查找关键字
//		for(int i=0;i<roots.length;i++){
//			count=fd.searchKeyFile(roots[i],"java");
//			System.out.println("文件数有"+count+"个");
//		}
		
//		fd.createFile("searchFile/src/searchFile/FileDemosec.java");
//		fd.deleteFolder_File("searchFile/src/searchFile/FileDemosec.java");
//		fd.deleteFolder_File("searchFile/src/searchFile");
		
	}
	//以上代码全部注释,大家可以一个一个试

~~首先,我们试一下盘符搜索
在这里插入图片描述
大概就是这种感觉
~~再来试试创建文件夹和文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除文件夹的时候大家要注意,先删除文件,使文件夹为空才能成功删除,否则会显示删除文件夹失败的呦,大家可以都试一试嘞。你要在左边按F5才可刷新,或者右键efresh

这次就到这里啦,我是哈哈哈哈哈哈士奇,我们不知道有没有下期再见~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值