`

Java删除目录及目录下的所有文件

    博客分类:
  • Java
阅读更多

java中删除目录事先要删除目录下的文件或子目录

public void del(String filepath) throws IOException{
 File f = new File(filepath);//定义文件路径       
 if(f.exists() && f.isDirectory()){//判断是文件还是目录
     if(f.listFiles().length==0){//若目录下没有文件则直接删除
         f.delete();
     }else{//若有则把文件放进数组,并判断是否有下级目录
         File delFile[]=f.listFiles();
         int i =f.listFiles().length;
         for(int j=0;j<i;j++){
             if(delFile[j].isDirectory()){
                       del(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径
             }
             delFile[j].delete();//删除文件
         }
     }
 }    
}

 

Java底层的操作还是很重要的。

 

分享到:
评论
5 楼 zqb666kkk 2014-12-08  
/**
	 * 
	 * @param filepath
	 * @throws IOException
	 */
	public static boolean del(String filepath) throws IOException {
		File f = new File(filepath);// 定义文件路径
		boolean r=false;
		if (f.exists() ) {// 判断是文件还是目录
			r=f.delete();
		}else if(f.isDirectory()){
			if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除
				r=f.delete();
			} else {// 若有则把文件放进数组,并判断是否有下级目录
				File delFile[] = f.listFiles();
				int i = f.listFiles().length;
				
				for (int j = 0; j < i; j++) {
					if (delFile[j].isDirectory()) {
						del(delFile[j].getAbsolutePath());// 递归调用del方法并取得子目录路径
					}
					r=delFile[j].delete();// 删除文件
				}
				
			}
		}
		return r;
	}


应该改成这样
4 楼 zqb666kkk 2014-12-08  
f.exists() && f.isDirectory()你这个逻辑写的有问题
3 楼 tarenadjq 2009-03-01  
好 好 好 好 好 好 好 好 好 好 好 好 好 好 好 好 好 好 好 好
2 楼 chxkyy 2008-05-29  
非常感谢!
1 楼 tvjody 2008-05-28  
apache开源的包中都包含了这些FileUtils,具体请参考API

File f = new File("D:\\Project Document\\商盟网站p1.01\\bb");
org.apache.commons.io.FileUtils.deleteDirectory(f);//删除目录
org.apache.tools.ant.util.FileUtils.delete(f);//删除文件

相关推荐

Global site tag (gtag.js) - Google Analytics