public class DelFileTest()
{
private static File m_root; //记录要删除的路径
private static ArrayList m_dirs;
/**
* 功能:获取所有文件和文件夹,存储在m_dirs中
* 注意:递归调用
* @param tempRoot 文件路径
*/
private void visitAll(File tempRoot){
try{
//获取指定路径下的所有文件
File[] dirs=tempRoot.listFiles();
if(dirs!=null){
//将文件数组转换成List对象
List dirslist=Arrays.asList(dirs);
//将dirslist完全添加到m_dirs中
m_dirs.addAll(dirslist);
//递归调用
for(int i=0 ; i<dirslist.size() ; i++){
this.visitAll((File)dirslist.get(i));
}
}
}catch(Exception ex){
System.out.println("error in visitAll : "+ex.getMessage());
}
}
/**
* 功能:删除文件或文件夹
* 注意:使用倒叙删除,先删除文件,然后删除空文件夹
*/
private void rootDelete(){
try{
if(m_dirs!=null){
//使用倒叙循环删除(先删除文件,再删除文件夹)
for(int i=m_dirs.size()-1 ; i>=0 ; i--){
File f=(File)m_dirs.remove(i);//获取之后删除list中的数据
//删除数据
if(!f.delete()){
System.out.println("文件路径:"+f.toString()+" 不存在");
}
}
}else{
System.out.println("获取文件list列表(m_dirs)为空");
}
}catch(Exception ex){
System.out.println("error in rootDelete : "+ex.getMessage());
}
}
/**
* 功能:删除文件夹方法
* @param dir 要删除的文件夹路径(java.io.File类型)
*/
private void deleteDirs(java.io.File dir){
try{
m_root=dir;
m_dirs= new ArrayList();
if(!m_root.isDirectory()){ //判断输入的是否为路径
System.out.println(m_root.toString()+" 不是路径");
}else{
//输出m_dirs中记录的值
//for(int i=0 ; i<m_dirs.size() ; i++){
// System.out.println(((File)m_dirs.get(i)).toString());
//}
m_dirs.add(m_root);
this.visitAll(m_root); //获取指定路径下的所有文件已经文件夹(递归调用)
this.rootDelete(); //删除list中的所有文件(倒叙循环删除)
}
}catch(Exception ex){
System.out.println("error in deleteDirs : "+ex.getMessage());
}
}
public static void main(String[] args)
{
File tmp = new File("d:/temp"); //这个文件夹事先自己先建好!
this.deleteDirs(tmp);
}
}
分享到:
相关推荐
"Java 递归删除文件和文件夹" Java 递归删除文件和文件夹是 Java 编程中一个常见的操作。该操作需要使用 Java 的 File 类来实现,通过递归调用来删除文件和文件夹。 File 类 在 Java 中,File 类是用于表示文件和...
在Java编程中,删除文件夹及其子文件夹通常涉及到递归操作,因为文件夹可能包含多个层级的子文件和子文件夹。递归是一种在函数内部调用自身的方法,用于解决具有相同结构的问题。以下是对Java中递归实现删除文件夹这...
java递归删除整个文件夹,可以文件夹中所有的文件和子文件夹
需要注意的是,对于删除文件夹的操作,如果文件夹非空,则需要先递归删除其中的所有文件和子文件夹后才能删除该文件夹。此外,在处理文件系统相关的操作时,建议捕获并妥善处理可能出现的各种异常情况,确保程序的...
通过上述代码示例,我们可以清晰地了解到如何使用Java进行文件夹和文件的基本操作。需要注意的是,在实际开发过程中,对于文件系统的操作还需要考虑更多的异常情况,并做好异常处理。此外,对于文件夹的删除操作,还...
在IT领域,递归删除是一种常见且强大的操作,主要用于清理特定类型或结构的文件和文件夹。本主题主要探讨如何实现“递归删除指定类型的文件夹”和“递归删除指定类型的文件”,以及如何在文件夹内部进行深度搜索和...
此方法用于递归删除目录及其子文件和子目录。它首先确保传入的路径以文件分隔符结尾,然后创建一个`File`对象来表示这个目录。接着检查该目录是否存在且确实为一个目录。如果满足条件,则遍历该目录下的所有文件和子...
使用递归删除文件
在JDK 7及以上版本中,Java提供了一种更加高效且灵活的方式来删除文件,包括递归删除整个文件夹及其子文件,这主要通过`java.nio.file`包中的`Files`类和`SimpleFileVisitor`类来实现。下面我们将详细探讨如何实现这...
本文将深入探讨使用Java管理HDFS文件和文件夹的关键知识点,特别是基于Hadoop 2.4版本。 首先,理解HDFS的基础概念至关重要。HDFS是一种分布式文件系统,设计用于跨大量廉价硬件节点存储和处理大数据。它遵循主从...
否则,遍历文件夹中的所有文件和子文件夹,递归地删除每个文件和子文件夹,最后删除当前文件夹。 在实现文件夹删除功能时,我们需要使用 File 类的多种方法,包括 isFile()、list()、delete() 和 listFiles()。其中...
3. **递归复制文件夹**:当需要复制一个文件夹及其所有子文件夹和文件时,我们会使用递归方法。基本步骤如下: - 检查是否为文件夹:使用`File.isDirectory()`方法判断。 - 创建目标文件夹:如果目标路径不存在,...
这是一个使用java开发了类,可以递归删除文件目录。
Java递归实现复制文件夹下所有文件功能 ...Java递归实现复制文件夹下所有文件功能是一种高效的文件复制方案,使用递归算法可以遍历文件夹下的所有文件和文件夹,然后使用FileInputStream和FileOutputStream来复制文件。
Java语言中的递归删除是一种常见的文件操作,尤其在处理文件夹结构时非常有用。递归是一种编程技术,它允许函数或方法调用自身来解决复杂问题。在这个Java程序中,递归被用来遍历和删除指定目录及其子目录中的所有...
总的来说,Java提供了强大的文件操作API,使得我们可以轻松地移动文件和文件夹。在实际应用中,还应该考虑异常处理、权限问题、并发访问等问题,以确保代码的健壮性和安全性。在进行大量文件操作时,可能还需要考虑...
} else { // 如果是子文件夹,递归删除(这里用循环模拟递归) deleteFolderRecursively(file); } } } // 在删除完所有文件和子文件夹后,删除空文件夹 folder.delete(); } else { System.out.println(...
本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`,该类提供了一系列功能来与FTP服务器交互,包括连接到服务器、上传文件、下载文件、获取文件列表、删除文件和目录以及关闭连接等操作。 #### 二、`...
删除文件夹,递归删除目录下的所有文件及子目录下所有文件,函数名:getFile 作用:使用递归,输出指定文件夹内的所有文件 参数:path:文件夹路径 前置空格缩进,显示文件层次结构,通过文件名称获取导入文件到temp...
`File`类提供了多种方法来操作文件系统,包括创建、删除文件或目录等。在本例中,我们关注的是如何通过`mkdirs()`方法来创建文件夹。 ### 创建文件夹的基本步骤 1. **定义文件路径**:首先需要明确想要创建文件夹...