`

递归删除指定目录下所有文件及子目录

阅读更多

public class Main 
{
	
	    public static void main(String[] args)
	    {
	    	Main m = new Main();
	    	m.deleteFile(new File("e:\\test\\"));
	    }
	    
	    public void deleteFile(File file)
	    {
	    		File[] temp = file.listFiles();
	    		for(int i=0;i<temp.length;i++)
	    		{
	    			System.out.println(temp[i].getName());
	    			if(temp[i].isDirectory())
	    	    	{
	    				if(temp[i].listFiles().length!=0)
	    					this.deleteFile(temp[i]);
	    				this.deleteDir(temp[i]);
	    	    	}else
	    	    	{
	    	    		temp[i].delete();
	    	    	}
	    		}
	    }
	
	    private void deleteDir(File file)
	    {
	    	if(file.listFiles().length==0)
	    		file.getAbsoluteFile().delete();
	    }
}
 
分享到:
评论
25 楼 Zahir 2010-05-05  
emparadise329 写道
import java.io.File;

/**
 * 类说明:   
 * @author 		  E-mail:   
 * @version	1.0   2010-5-4 下午02:39:25
 */
public class Test {
	public static void main(String[] args) throws Exception{
		Runtime r = Runtime.getRuntime();
		String command = "";
		String fileName = "F:\\test";
		if("/".equals(File.separator)){//Linux
			command = "rm -rf " + fileName;
		}else if("\\".equals(File.separator)){//xp
			command = "cmd /c rd /q /s " + fileName;
		}
		r.exec(command);
	}
}

win7 下的separator是 "\"
24 楼 murainwood 2010-05-04  
huaoguo 写道
murainwood 写道
llyzq 写道
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?


真诚请教2行代码如何解决。

java.lang.Runtime.exec(*******)
恩,相信你明白我想说什么了。想通用也很简单,先从环境系统里判断是什么OS。Windows的命令该怎么写,*nix的命令该怎么写,恩,大家懂的。

自己实现和调用外部接口是两回事
理论研究和实际运用是两回事
发帖和风气算是一回事?

删个文件,还是两回事儿啊?
kidding?这东西还需要做理论研究
23 楼 emparadise329 2010-05-04  
import java.io.File;

/**
 * 类说明:   
 * @author 		  E-mail:   
 * @version	1.0   2010-5-4 下午02:39:25
 */
public class Test {
	public static void main(String[] args) throws Exception{
		Runtime r = Runtime.getRuntime();
		String command = "";
		String fileName = "F:\\test";
		if("/".equals(File.separator)){//Linux
			command = "rm -rf " + fileName;
		}else if("\\".equals(File.separator)){//xp
			command = "cmd /c rd /q /s " + fileName;
		}
		r.exec(command);
	}
}
22 楼 key232323 2010-05-04  
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?



一行就够了(Groovy)

def delC = {f -> f.isDirectory()?f.eachFile(delC):f.delete()}
21 楼 xiejin2008 2010-05-04  
嗯哪。都是一些笔试题。。遇到多。
20 楼 lenjey 2010-05-04  
murainwood 写道
llyzq 写道
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?


真诚请教2行代码如何解决。

java.lang.Runtime.exec(*******)
恩,相信你明白我想说什么了。想通用也很简单,先从环境系统里判断是什么OS。Windows的命令该怎么写,*nix的命令该怎么写,恩,大家懂的。

呵呵,受教了!
从指定文件夹删除文件也是我当时进公司的一道笔试题,呵呵
19 楼 guanliScott 2010-05-04  
DirectoryWalker

隐藏
18 楼 lenjey 2010-05-04  
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?

老兄指点一下
17 楼 ipconfiger 2010-05-04  
os.walk 一笑飘过
16 楼 ahuango 2010-05-04  
诧异的上了主页
15 楼 huaoguo 2010-05-04  
murainwood 写道
llyzq 写道
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?


真诚请教2行代码如何解决。

java.lang.Runtime.exec(*******)
恩,相信你明白我想说什么了。想通用也很简单,先从环境系统里判断是什么OS。Windows的命令该怎么写,*nix的命令该怎么写,恩,大家懂的。

自己实现和调用外部接口是两回事
理论研究和实际运用是两回事
发帖和风气算是一回事?
14 楼 windchill_java 2010-05-03  
郁闷,为什么这样的东西会上主页????
13 楼 PetriNet 2010-05-03  
JE最近风气不行啊,空想家怎么这么多
12 楼 murainwood 2010-05-01  
llyzq 写道
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?


真诚请教2行代码如何解决。

java.lang.Runtime.exec(*******)
恩,相信你明白我想说什么了。想通用也很简单,先从环境系统里判断是什么OS。Windows的命令该怎么写,*nix的命令该怎么写,恩,大家懂的。
11 楼 murainwood 2010-05-01  
这种小事儿,我一样喜欢调用操作系统本地命令来做,恩,确实也就两行代码啥的
10 楼 llyzq 2010-05-01  
XTU_xiaoxin 写道
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?


真诚请教2行代码如何解决。
9 楼 XTU_xiaoxin 2010-05-01  
我就纳闷了,2行代码能解决的事,要用递归、栈什么的吗?
8 楼 xiangkun 2010-05-01  
dwangel 写道
建议看下 apache commons-io

赞成!!!!
7 楼 dwangel 2010-05-01  
建议看下 apache commons-io
6 楼 robin_hood 2010-05-01  
选择您需要装饰的文字, 按上列按钮即可添加上相应的标签

相关推荐

    递归删除文件或子目录

    在这个场景中,"递归删除文件或子目录"指的是编写一个程序,它能够遍历并删除指定目录下的所有文件和子目录,包括它们的子孙目录,但会跳过那些被标记为只读属性的文件和目录。这个功能在清理或整理文件系统时非常...

    递归删除指定类型的文件夹,递归删除指定类型的文件

    本主题主要探讨如何实现“递归删除指定类型的文件夹”和“递归删除指定类型的文件”,以及如何在文件夹内部进行深度搜索和深度删除。 首先,我们需要理解递归的概念。递归是一种解决问题的方法,它将一个问题分解为...

    BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip

    本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip”包含了用于自动删除指定路径下非特定文件或文件夹的BAT脚本。以下是关于这个脚本和批处理技术的详细解释: *...

    一个递归删除指定目录和文件的例子

    在删除目录的场景中,如果一个目录包含其他子目录或文件,我们需要先删除子目录内的所有内容,然后才能删除子目录本身,这就是递归的典型应用。 在这个例子中,我们可能会有一个名为`DelDir`的函数,它接受一个路径...

    Qt删除一个目录下所有文件和文件夹

    在Qt编程中,删除一个目录下所有文件和文件夹是一个常见的任务,这通常涉及到文件系统操作。Qt提供了QDir类来处理与目录和文件相关的操作。以下是对这个知识点的详细说明: 首先,我们需要理解QDir类。QDir是Qt中的...

    BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹2.zip

    3. `DEL /S /Q *.*`:递归地删除当前目录及其子目录下的所有文件,/S表示递归,/Q表示静默模式,不显示确认删除的提示。 4. `RMDIR /S /Q 目录名`:删除指定的目录及其所有子目录,/S表示递归,/Q表示静默模式。 5. ...

    递归删除指定文件例子

    在这个例子中,“dpdb.bat”很可能就是一个批处理脚本,用于删除指定目录下的pdb文件。让我们分析一下可能的脚本内容: ```batch @echo off setlocal enabledelayedexpansion for /r %%i in (*.pdb) do ( if exist...

    删除目录下所有文件的vb.net代码

    在VB.NET编程环境中,删除目录下所有文件及子目录是一项常见的任务,这通常涉及到文件系统对象的使用。本文将深入探讨如何使用VB.NET编写代码来实现这一功能。 首先,我们需要了解VB.NET中的`System.IO`命名空间,...

    批处理删除指定文件夹下的所有文件和文件夹

    ### 批处理删除指定文件夹下的所有文件和文件夹 #### 概述 在Windows操作系统中,批处理脚本是一种非常实用的工具,它能够帮助用户执行一系列预先定义好的命令,实现自动化操作。本文主要介绍如何通过批处理脚本来...

    C#删除FTP文件夹(有子文件夹和子文件)的方法

    // 首先获取当前目录下的所有子目录 string[] subFolders = GetDeleteFolderArray(path); // 如果有子目录,则递归删除 if (subFolders != null) { foreach (string subFolder in subFolders) { string ...

    (VS2010 C++)删除指定目录及其下所有的文件夹,文件

    接下来,我们将使用`FindFirstFile`、`FindNextFile`、`DeleteFile`和`RemoveDirectory`等函数来遍历并删除指定目录下的所有内容。 下面是一个简单的示例代码片段,演示了如何删除目录及其内容: ```cpp #include ...

    递归删除列表文件以外的所有文件源代码.rar

    在IT行业中,编程时常会遇到需要清理特定目录下文件的需求,比如保留指定列表中的文件而删除其他所有文件。这个场景通常使用递归方法来解决,因为递归允许我们逐级遍历目录结构并处理每个子目录。在这个"递归删除...

    java 删除指定目录下的文件

    但是,这个方法不能删除非空目录,因此,我们需要递归地删除目录下的所有文件和子目录。 ```java import java.io.File; public class FileDemo_05 { public static void main(String[] args) { String dirPath =...

    非递归删除非空目录(源代码)

    这段代码首先列出目录`Test`中的所有文件和子目录,然后逐个处理。对于每个子项,如果是文件则直接删除,如果是子目录则递归调用`RemoveNonEmptyDirectory`。所有子项处理完毕后,尝试删除`Test`目录自身。 这样的...

    用来删除目录和其下所有文件及子目录

    标题中提到的"用来删除目录和其下所有文件及子目录",这正是这类操作的典型应用场景。 在Windows操作系统中,有一个名为`deltree`的命令,它用于递归地删除指定的目录及其包含的所有内容。不过,`deltree`在较新的...

    java递归实现删除文件夹

    但如果目录非空,该方法将失败,除非递归删除所有子文件和子目录。 3. **递归删除实现** - 首先,我们需要检查给定的文件或目录是否存在。如果不存在,无需执行删除操作。 - 然后,使用`isDirectory()`方法判断...

    linux下为目录和文件设置权限,包括子目录的循环递归设置

    ### Linux 下为目录和文件设置权限,包括子目录的循环递归设置 #### 知识点一:Linux 文件权限概述 在 Linux 操作系统中,文件权限管理是至关重要的安全特性之一。通过权限管理,我们可以控制不同用户对文件或目录...

    Windows使用bat批处理命令清除指定目录下的文件夹以及对应文件

    Windows清除指定目录下的文件夹以及对应文件,自动获取电脑用户名兼容Windows7、8、10,非常好用的工具。

    python递归删除指定目录及其所有内容的方法

    以下是一个Python函数,名为`del_dir_tree`,用于递归删除指定的目录及其内容: ```python import os def del_dir_tree(path): ''' 递归删除目录及其子目录, 子文件 ''' # 检查路径是否为文件 if os.path.is...

    qt删除文件夹内所有内容

    要删除文件夹内的所有内容,我们需要遍历目录,获取所有文件和子目录,并逐个删除。 以下是一个简单的步骤概述: 1. **初始化QDir对象**:首先,创建一个`QDir`对象,指定要删除内容的文件夹路径。例如: ```cpp ...

Global site tag (gtag.js) - Google Analytics