Java--文件操作,删除文件及文件夹

1.删除文件夹下的所有文件,所有文件夹,及删除本身

 

public static boolean deleteFolders(String filePath){
		boolean isDeleteSuccess = false;
		LinkedList<String> folderList = new LinkedList<String>();
		folderList.add(filePath);

		while(folderList.size() > 0){
			File file1 = new File(folderList.poll());
			File[] files1 = file1.listFiles();
			ArrayList<File> fileList = new ArrayList<File>();
			for(int i = 0; i < fileList.size(); i++){
				if(files1[i].isDirectory()){
					folderList.add(files1[i].getPath());
				}else{
					fileList.add(files1[i]);
				}
			}

			//删除文件
			for(File file : fileList){
				file.delete();
			}
		}

		//删除文件夹
		folderList = new LinkedList<String>();
		folderList.add(filePath);
		while(folderList.size() > 0){
			File file2 = new File(folderList.getLast());
			if(file2.delete()){
				folderList.removeLast();
			}else{
				File[] files2 = file2.listFiles();
				for(int i = 0; i < files2.length; i++){
					folderList.add(files2[i].getPath());
				}
			}
		}
		if(folderList.size() == 0) isDeleteSuccess = true;
		return isDeleteSuccess;
	}


 


 

2.删除文件夹下的所有文件夹

 

public static boolean deleteUnderAllFolder(String filePath){
		boolean isDeleteSuccess = false;
		LinkedList<String> folderList = null;
		File superFile = new File(filePath);
		File[] files1 = superFile.listFiles();
		for(int i = 0; i < files1.length; i++){
			if(files1[i].isDirectory()){
				if(!files1[i].delete()){
					//取得所有文件的路径
					folderList = new LinkedList<String>();
					folderList.add(files1[i].getPath());
					while(folderList.size() > 0){
						File file = new File(folderList.poll());
						File[] files2 = file.listFiles();
						ArrayList<File> fileList = new ArrayList<File>();
						for(int j = 0; j < files2.length; j++){
							if(files2[j].isDirectory()){
								folderList.add(files2[j].getPath());
							}else{
								fileList.add(files2[j]);
							}
						}
						//删除所有文件
						for(File f : fileList){
							f.delete();
						}
					}

					//删除所有文件夹
					folderList = new LinkedList<String>();
					folderList.add(files1[i].getPath());
					while(folderList.size() > 0){
						File file = new File(folderList.getLast());
						if(file.delete()){
							folderList.removeLast();
						}else{
							File[] files = file.listFiles();
							for(int a = 0; a < files.length; a++){
								folderList.add(files[a].getPath());
							}
						}
					}
				}
			}
		}
		if(folderList != null && folderList.size() == 0) isDeleteSuccess = true;
		return isDeleteSuccess;
	}


 

3.清空文件夹

 

public static boolean emptyFolder(String filePath){
		File delifilefolder = new File(filePath);
		if(delifilefolder.exists() && !delifilefolder.delete()){
			LinkedList<String> folderList = new LinkedList<String>();
			folderList.add(filePath);
			while(folderList.size() > 0){
				File file1 = new File(folderList.poll());
				File[] files1 = file1.listFiles();
				ArrayList<File> fileList = new ArrayList<File>();
				for(int i = 0; i < fileList.size(); i++){
					if(files1[i].isDirectory()){
						folderList.add(files1[i].getPath());
					}else{
						fileList.add(files1[i]);
					}
				}
				
				//删除文件
				for(File file : fileList){
					file.delete();
				}
			}
			
			//删除文件夹
			folderList = new LinkedList<String>();
			folderList.add(filePath);
			while(folderList.size() > 0){
				File file2 = new File(folderList.getLast());
				if(file2.delete()){
					folderList.removeLast();
				}else{
					File[] files2 = file2.listFiles();
					for(int i = 0; i < files2.length; i++){
						folderList.add(files2[i].getPath());
					}
				}
			}
		}
		return delifilefolder.mkdir();
	}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值