Java之File如何删除文件和文件夹方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38225558/article/details/82466063
 boolean delete()
          删除此抽象路径名表示的文件或目录。

删除文件:存在文件则直接删除返回true,如果不存在返回false
删除目录:
   ①:为空:直接删除
   ②:不为空:删不掉 (需要先删除文件夹里面所有文件,再删除文件夹)
   ③:不存在直接返回false
注意:delete方法 ==》直接从磁盘中删除,不能像回收站一样可以恢复!!

/**
 * File删除文件和文件夹方法:
 *  1.删除文件:存在文件则直接删除返回true,如果不存在返回false
 *  2.删除目录:
 *    ①:为空:直接删除
 *    ②:不为空:删不掉 (需要先删除文件夹里面所有文件,再删除文件夹)
 *    ③:不存在直接返回false
 * 注意:delete方法 ==》直接从磁盘中删除,不能像回收站一样可以恢复!!
 * @author 郑清
 */
public class Demo {
	 
	public static void main(String[] args) {
		//删除D:/1 路径下的1.txt文件
		File file = new File("D:/1/1.txt");
		System.out.println(file.delete());
		
		//删除D:/1 路径下的新建文件夹  为空的话可直接使用delete方法删除
		File file2 = new File("D:/1/新建文件夹");
		System.out.println(file2.delete());
		
		//删除D:/1 路径下的新建文件夹2  不为空的情况下 ==》deleteFile 先删除文件夹里的所有文件 再删除文件夹
		File file3 = new File("D:/1/新建文件夹2");
		deleteFile(file3);
	}
	/*
	 * 如果是文件 ==》直接删除
	 * 如果是目录 ==》必须先删除里面每一层目录里的所有文件,最后才能删除外层的目录
	 *              原因:不为空的话 删不了
	 */
	public static void deleteFile(File file) {
		if(file.exists()) {//判断路径是否存在
			if(file.isFile()){//boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。 
				file.delete();
			}else{//不是文件,对于文件夹的操作
				//保存 路径D:/1/新建文件夹2  下的所有的文件和文件夹到listFiles数组中
				File[] listFiles = file.listFiles();//listFiles方法:返回file路径下所有文件和文件夹的绝对路径
				for (File file2 : listFiles) {
					/*
					 * 递归作用:由外到内先一层一层删除里面的文件 再从最内层 反过来删除文件夹
					 *    注意:此时的文件夹在上一步的操作之后,里面的文件内容已全部删除
					 *         所以每一层的文件夹都是空的  ==》最后就可以直接删除了
					 */
					deleteFile(file2);
				}
			}
			file.delete();
		}else {
			System.out.println("该file路径不存在!!");
		}
	}

}

猜你喜欢

转载自blog.csdn.net/qq_38225558/article/details/82466063
今日推荐