`

java 递归删除某个目录

    博客分类:
  • java
阅读更多
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;


public class DeleterDir {
	
	public static void main(String[] args) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
		System.out.println("Begin time is: " + sdf.format((new Date())));
		DeleterDir.searchDirs("D:\\project", ".svn");
		System.out.println("End time is: " + sdf.format((new Date())));
		System.out.println("Ok.......");
	}
	
	public static void searchDirs(String dir, String targetDir) {
		File root = new File(dir);
		File[] filesOrDirs = root.listFiles();
		for (int i = 0; i < filesOrDirs.length; i++) {
			if (filesOrDirs[i].isDirectory()) {
				if (filesOrDirs[i].getName().equals(targetDir)) {
					// 如果找到该目录,删除目录
					deleteDir(filesOrDirs[i].getAbsoluteFile());
					continue;
				}
				if (filesOrDirs[i].isDirectory() && filesOrDirs[i] != null
						&& filesOrDirs[i].exists()) {
					searchDirs(filesOrDirs[i].getAbsolutePath(), targetDir);
				}
			}
		}
	}

	/**
	 * 删除目录(空目录或者非空目录)
	 * @param dir
	 */
	public static void deleteDir(File dir) {
		// 检查参数
		if (dir == null || !dir.exists() || !dir.isDirectory()) {
			return;
		}
		for (File file : dir.listFiles()) {
			if (file.isFile()) {
				file.delete(); // 删除目录
			} else if (file.isDirectory()) {
				deleteDir(file); // 递规的方式删除目录
			}
		}
		dir.delete(); // 删除目录本身
	}

}



修改以后 采用了 org.apache.commons.io.FileUtils 中的删除文件方法。

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.io.FileUtils;

public class DeleterDir2 {
	public static void main(String[] args) throws IOException {  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");  
        System.out.println("Begin time is: " + sdf.format((new Date())));  
        DeleterDir.searchDirs("F:\\temp\\2011", ".svn");  
        System.out.println("End time is: " + sdf.format((new Date())));  
        System.out.println("Ok.......");  
    }  
      
    public static void searchDirs(String dir, String targetDir) throws IOException {  
        File root = new File(dir);  
        File[] filesOrDirs = root.listFiles();  
        for (int i = 0; i < filesOrDirs.length; i++) {  
            if (filesOrDirs[i].isDirectory()) {  
                if (filesOrDirs[i].getName().equals(targetDir)) {  
                    // 如果找到该目录,删除目录  
                    FileUtils.deleteDirectory(filesOrDirs[i].getAbsoluteFile());
                    continue;  
                }  
                if (filesOrDirs[i].isDirectory() && filesOrDirs[i] != null  
                        && filesOrDirs[i].exists()) {  
                    searchDirs(filesOrDirs[i].getAbsolutePath(), targetDir);  
                }  
            }  
        }  
    }
}
分享到:
评论
2 楼 xiejiaohui 2011-08-06  
zdjray 写道
非常不错,可以用起来啊

最后面也可以直接使用apache的包
org.apache.commons.io.FileUtils.deleteDirectory(f);//删除目录



感谢提醒,已经采用了这个方法,程序简短很多。
1 楼 zdjray 2011-03-12  
非常不错,可以用起来啊

最后面也可以直接使用apache的包
org.apache.commons.io.FileUtils.deleteDirectory(f);//删除目录

相关推荐

    java删除某个文件夹

    java递归删除整个文件夹,可以文件夹中所有的文件和子文件夹

    使用递归删除树形结构的所有子节点(java和mysql实现)

    使用递归删除树形结构的所有子节点(java和mysql实现) 在树形结构中删除某个父节点时,需要递归删除其所有子节点,以避免遗留冗余数据。下面将为大家介绍使用 Java 和 MySQL 实现递归删除树形结构的所有子节点的...

    java中遍历某个目录下的所有文件及文件夹中的文件

    ### Java中遍历某个目录下的所有文件及文件夹中的文件 在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一...

    删除文件夹和文件夹里面的文件

    使用递归删除文件

    JAVA实现zookeeper节点批量删除工具类.rar

    工具类的实现可能包含一个递归函数,先获取目标节点的所有子节点,然后对每个子节点调用自身进行递归删除,最后删除目标节点。 4. **错误处理**:在操作过程中,可能会遇到权限不足、节点不存在等异常,因此需要...

    关于java递归文件,以及检索特定文件

    总结起来,Java递归文件查找是通过递归遍历文件夹结构来实现的,结合`File`类或第三方库如Apache Commons IO,我们可以有效地搜索特定文件。同时,利用源码分析工具和IDE可以帮助我们理解和优化这些操作。在实际开发...

    java中读取目录下指定的文件

    Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现这个功能。 首先,你需要导入Java的`java.io`包,它包含了处理文件和输入/输出流的...

    编写一个java应用程序,将一个包含多个子目录和文件的目录复制到另外一个指定的目录下

    综上所述,编写一个能够复制包含多级子目录和文件的Java应用程序需要理解文件和目录操作、递归、异常处理、日期格式化以及可能的用户交互设计。通过合理组合这些知识点,可以构建出一个功能完整的目录复制工具。

    JAVA获取FTP文件列表

    本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`,该类提供了一系列功能来与FTP服务器交互,包括连接到服务器、上传文件、下载文件、获取文件列表、删除文件和目录以及关闭连接等操作。 #### 二、`...

    删除目录下所有.class文件

    例如,`del /s *.class`会递归删除当前目录及其子目录下的所有`.class`文件。 4. **命令行参数**: - `/s` 参数表示在当前目录及其所有子目录中执行操作。 - `/q` 参数用于安静模式,删除时不提示确认。 - `/f` ...

    Java目录树控件

    Java 7引入了java.nio.file包,其中的WatchService接口可以注册对目录的监听,当目录有新增、删除或重命名等事件发生时,我们可以接收到通知并更新控件。 此外,为了让目录树更具交互性,我们可以添加各种事件监听...

    Java定时清理过期文件的实例代码

    Java递归删除文件是指使用递归算法来删除文件夹下所有文件的方法。在上面的代码中,我们使用了递归算法来删除文件夹下所有文件。该方法将检查文件夹下所有文件,如果是文件夹,则递归调用该方法来删除文件夹下的所有...

    Java实现的模糊匹配某文件夹下的文件并删除功能示例

    - 这个示例没有处理递归删除子文件夹的情况。如果需要删除整个文件夹及其内容,需要递归遍历子文件夹并调用删除方法。 - 文件操作可能引发异常,如 `FileNotFoundException` 或 `IOException`,在实际项目中应该...

    冒泡、快速(递归、非递归、及递归改进)、希尔、哈希

    希尔排序的基本思想是先将待排序的元素按某个增量分组,对每组进行直接插入排序,然后逐渐减小增量,直至为1,最终整个序列有序。希尔排序的时间复杂度介于O(n)和O(n^2)之间,具体取决于增量序列的选择。 **哈希...

    java创建多级目录文件的实例讲解

    `File`类提供了多种方法来操作文件和目录,包括创建、删除、重命名等。 创建多级目录的关键在于使用`mkdirs()`方法。这个方法会递归地创建目录,直到指定的完整路径存在。如果路径中的某个中间目录已经存在,`...

    编译原理 递归下降语法分析程序(代码+说明文档)

    当解析器遇到输入中的某个符号时,它会调用相应的函数,这些函数可能进一步调用其他函数,直至遇到终结符并返回,形成一个递归过程。 2. **忽略注释**:在解析程序中,需要包含处理注释的功能,通常这会通过扫描...

Global site tag (gtag.js) - Google Analytics