`

一个删除指定目录下所有文件及子目录的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实现GUI文件管理器

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。 建议使用...

    java源码包---java 源码 大量 实例

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    GUI文件管理(java)

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。

    java源码包4

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java源码包3

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    Java开发技术大全(500个源代码).

    dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。...

    java源码包2

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    JAVA上百实例源码以及开源项目源代码

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    文件/文件夹操作(读取,删除,添加)

    6、 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求: 1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状...

     一.JAVA程序传送到手机的方法:

    一.JAVA程序传送到手机的方法:  JAVA程序传送到手机的方法有4种,分别是手机上网直接下载安装,通过电脑下载到本地 后,然后通过读卡器,数据线,蓝牙,红外线传输JAVA程序到手机.具体方法说明如下.  1.手机上网下载: ...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java范例开发大全(全书源程序)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics