`

一个删除指定目录下所有文件及子目录的Java程序

    博客分类:
  • Java
阅读更多

今天在je上闲逛时,看到很多人分享的一个删除指定目录下所有文件及子目录的Java程序比较好,故copy过来存档于此,以便以后借用。

原帖地址:递归删除指定目录下所有文件及子目录

关于用Java实现删除指定目录下的所有文件的问题

1。一个删除指定目录下所有文件的程序,算法是用递归来实现的。

程序一:

/**
	 * 删除此路径名表示的文件或目录。
	 * 如果此路径名表示一个目录,则会先删除目录下的内容再将目录删除,所以该操作不是原子性的。
	 * 如果目录中还有目录,则会引发递归动作。
	 * @param filePath
	 *            要删除文件或目录的路径。
	 * @return 当且仅当成功删除文件或目录时,返回 true;否则返回 false。
	 */
	public static boolean deleteFile(String filePath) {
		File file = new File(filePath);
		return deleteFile(file);
	}
	
	private static boolean deleteFile(File file){
		File[] files = file.listFiles();
		for(File deleteFile : files){
			if(deleteFile.isDirectory()){
				//如果是文件夹,则递归删除下面的文件后再删除该文件夹
				if(!deleteFile(deleteFile)){
					//如果失败则返回
					return false;
				}
			} else {
				if(!deleteFile.delete()){
					//如果失败则返回
					return false;
				}
			}
		}
		return file.delete();
	}

 程序二:

    public static boolean delete(File dir)
    {
        if (dir.isDirectory())
        {
            File[] listFiles = dir.listFiles();
            for (int i = 0; i < listFiles.length && delete(listFiles[i]); i++)
            {
            }
        }
        return dir.delete();
    }

 2。调用本地操作系统的方法:

 /**
		 * 通过命令删除文件或文件夹(会删除文件夹里所有文件) 只能在windows上使用,如果
		 * 在Unix或linux上,则修改相应命令
		 * 
		 * @param _file
		 */
		 public static void deleteFileByWindowsCommand(File _file) {
			 Runtime rt = Runtime.getRuntime();   
			 String cmd = null;
			  try {   
				  if(_file.isFile()) {
					  cmd = "cmd.exe /c del /q/a/f/s "+_file.getAbsolutePath();
				  } else {
					  cmd = "cmd.exe /c rd /s/q "+_file.getAbsolutePath();
				  }
			      rt.exec(cmd);   
		      }catch(IOException e){   
			      e.printStackTrace();   
			  }   
			}
 
分享到:
评论
1 楼 hehebendan 2010-09-09  
.....

相关推荐

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

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

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

    2. **`File.listFiles()` 方法**: 此方法返回一个数组,包含了指定目录下的所有子文件和子目录。如果目录为空,则返回空数组;如果该对象表示的不是一个目录,则返回 `null`。 3. **`File.getPath()` 方法**: 返回...

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

    在Java编程语言中,读取目录下指定的文件是一项常见的任务,这主要涉及到文件I/O操作。Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现...

    Java中删除文件、删除目录及目录下所有文件

    在Java编程语言中,删除文件或目录是一项常见的操作,这对于清理资源、释放磁盘空间或者在应用程序中执行清理任务是必不可少的。以下将详细介绍如何在Java中实现这一功能。 首先,我们来了解一下Java中用于文件操作...

    java删除指定文件夹下文件

    在JDK 7及以上版本中,Java提供了一种更加高效且灵活的方式来删除文件,包括递归删除整个文件夹及其子文件,这主要通过`java.nio.file`包中的`Files`类和`SimpleFileVisitor`类来实现。下面我们将详细探讨如何实现这...

    java程序实现文件夹删除

    如果是,它会遍历该目录下的所有文件和子目录,递归调用自身。最后,当遍历完所有内容后,删除空的目录。 ### 异常处理 在实际的代码中,我们还需要考虑可能抛出的异常,如`NullPointerException`(如果文件路径...

    java程序删除文件实例

    // 删除目录及其中的所有文件和子目录 public boolean deleteDirectory(String sPath) { if (!sPath.endsWith(File.separator)) { // 确保路径以分隔符结尾 sPath += File.separator; } File dirFile = new ...

    多个子目录和文件的目录复制到另外一个指定的目录下

    本篇文章将详细讲解如何编写一个Java应用程序,实现将一个包含多个子目录和文件的目录复制到另一个指定的目录下。 首先,我们需要理解Java中的文件和目录操作API。`java.io.File`类是进行文件和目录操作的基础,它...

    java遍历文件目录生成树结构txt文件

    2. **获取子目录列表**:调用`listFiles()`方法,返回根目录下的所有文件和子目录。 3. **递归遍历**:对每个子目录,重复以上步骤;对于文件,则记录其信息(例如路径、名称等)。 4. **构建树结构**:在遍历过程中...

    Java文件批量处理程序

    Java 文件批量处理程序是一款基于 Java 平台的文件批量处理工具,旨在提供一个高效、便捷、可靠的文件批量处理解决方案。该程序主要实现了新建文件、复制、移动、删除、解压缩及分割/合并文件等功能,满足了用户对...

    java删除本地文件.txt

    这段代码定义了一个名为`deleteDirectory`的方法,它可以接收一个`File`类型的参数并递归地删除所有子文件和子目录。 ### 五、总结 本文详细介绍了如何使用Java程序删除本地文件,包括创建`File`对象、使用`delete...

    java移动文件夹下所有文件

    这个场景描述了一个程序能够遍历指定文件夹中的所有文件,并将它们移动到另一个目标文件夹,同时保持原有的文件结构。这样的功能对于数据迁移、备份或者文件整理都非常有用。下面我们将详细探讨如何实现这一功能,...

    java++删除指定目录下的文件

    在Java编程语言中,删除指定目录下的文件是一项常见的文件操作任务。这通常涉及到对`java.io`包中的类,特别是`File`类的使用。在本文中,我们将深入探讨如何在Java中删除单个文件以及整个目录,并了解相关的重要...

    java删除指定目录下所有空文件夹的方法

    它会列出根目录下的所有子文件和子目录,并对每个子目录进行递归调用,直到遍历完所有子目录。如果遇到的是一个目录,就将其添加到`list`中。这样,`list`将包含所有子目录的引用。 接下来,我们有一个`...

    Java 模拟文件管理器

    对于目录,我们首先将其下的所有文件和子目录添加到`ArrayList`,然后对每个子目录重复这个过程,直到没有更多的子目录为止。 总的来说,Java 模拟文件管理器是一个综合性的项目,涵盖了文件操作、I/O流、集合操作...

    操作系统实习 java实现模拟文件管理系统

    本实验旨在通过编写Java程序来模拟一个简单的文件管理系统,目的是让学生理解操作系统中文件管理的核心概念,并通过实际编程加深对这些概念的理解。 #### 设计思路 为了模拟文件系统的结构,采用了树形结构来表示...

    java程序 删除半年前的文件 后缀名为csv

    在Java编程中,删除特定类型(如...以上就是针对"java程序 删除半年前的文件 后缀名为csv"这一任务所涵盖的关键Java编程知识点。在实际应用中,这样的程序应当具有高度的灵活性和可配置性,以便适应不同的环境和需求。

    删除目录下所有.class文件

    这段脚本会搜索并删除指定目录及子目录下的所有`.class`文件,并在删除前显示文件名。最后,它会暂停,以便用户确认结果。 总结,删除目录下所有.class文件涉及到了文件类型识别、批处理脚本编写、命令行操作以及...

    定时删除指定目录下指定文件类型的文件 源码

    这个"定时删除指定目录下指定文件类型的文件 源码"就是一个这样的解决方案,它可以帮助我们节省存储空间,保持文件系统的整洁。下面我们将深入探讨这个主题。 1. **定时任务**:定时任务是计算机编程中的一个重要...

    删除文件夹java代码

    本代码提供了一个简单的递归删除文件夹(包括其中的所有文件和子目录)的Java实现示例。通过递归调用`deleteFile`方法,能够有效地删除指定路径下的所有内容。在实际应用中,还需要注意权限管理、异常处理等问题,以...

Global site tag (gtag.js) - Google Analytics