删除文件和文件夹的类
/*
用来删除文件夹的类,如果文件夹存在那么就删除该文件夹以及文件夹下的所有文件和文件夹
如果是文件,那么就删除该文件
*/
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DeleteDir {
private static File m_root; //记录要删除的路径
private static ArrayList m_dirs;//
/**
* 功能:删除文件夹方法
* @param dir 要删除的文件夹路径(java.io.File类型)
*/
public boolean deleteDirs(java.io.File dir) {
boolean isdelete=false;
try {
m_root = dir;
m_dirs = new ArrayList();
if (!m_root.isDirectory()) { //判断输入的是否为路径
System.out.println(m_root.toString() + " 不是路径");
//如果不是目录那么就是文件,下面是删除文件
if(m_root.exists()){
if(m_root.isFile()){
isdelete=m_root.delete();
}
}
} 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中的所有文件(倒叙循环删除)
isdelete=true;
}
} catch (Exception ex) {
System.out.println("error in deleteDirs : " + ex.getMessage());
}
return isdelete;
}
/**
* 功能:删除文件或文件夹
* 注意:使用倒叙删除,先删除文件,然后删除空文件夹
*/
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());
}
}
/**
* 功能:获取所有文件和文件夹,存储在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());
}
}
public static void main(String[] args) throws Exception {
String path = "F:\\TDDownload\\WindowsXP-KB835935-SP2-CHS.exe.td";
DeleteDir dd = new DeleteDir();
System.out.println(dd.deleteDirs(new File(path)));
System.out.println("OK");
}
/* *//**
* 删除文件或者文件夹,对于文件夹遍历其子文件夹进行递归删除
* @param f - File对象
* @return 删除是否成功
*//*
public static boolean deleteFile(File f) {
if (f.exists()) {
if (f.isFile())
return f.delete();
else if (f.isDirectory()) {
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (!deleteFile(files))
return false;
}
return f.delete();
} else
return false;
} else
return false;
}*/
}
分享到:
相关推荐
该类提供了许多有用的方法来操作文件和文件夹,例如 listFiles() 方法可以获取指定路径下的所有文件和文件夹,delete() 方法可以删除文件或文件夹。 递归删除文件和文件夹 递归删除文件和文件夹是指通过递归调用来...
### 批处理删除指定文件夹下的所有文件和文件夹 #### 概述 在Windows操作系统中,批处理脚本是一种非常实用的工具,它能够帮助用户执行一系列预先定义好的命令,实现自动化操作。本文主要介绍如何通过批处理脚本来...
这段代码会遍历指定的文件夹,删除所有文件和子文件夹。请注意,这只是一个基础示例,实际应用中可能需要添加错误处理和权限检查。 在VS2017中编译这个程序时,确保已包含必要的头文件,并且项目配置为使用Unicode...
在`Qt删除一个目录下所有文件和文件夹`的场景中,QDir类是主要工具。 1. **QDir的构造**: 可以通过传递一个路径字符串来初始化QDir对象,例如`QDir dir("path/to/directory");`,这将代表指定的目录。 2. **遍历...
在批处理脚本中,删除文件和文件夹的常用命令是`del`和`rmdir`(或其等价的`rd`)。`del`用于删除文件,而`rmdir`用于删除空的目录。如果需要删除非空目录,可以使用`rmdir /s /q`参数,这里的`s`表示递归删除子目录...
标题中的"pb9 删除文件夹及文件夹里面的全部文件"指的是使用PowerBuilder 9(简称PB9)进行文件和文件夹操作的编程实践。PowerBuilder是一款强大的可视化开发工具,尤其适用于构建数据库应用。在这个场景中,开发者...
在实际编程中,根据具体需求,选择合适的方法和类组合使用,就能完成对文件和文件夹的各种操作。记得在操作完成后关闭文件流,释放资源,并正确处理可能出现的异常,以确保程序的稳定性和可靠性。
【利用VBA操纵文件和文件夹】的知识点涵盖了在编程中对文件和文件夹进行各种操作的方法。在Excel中,VBA(Visual Basic for Applications)提供了丰富的功能来处理文件系统任务,这使得用户能自动化处理大量的文件...
Windows API提供了丰富的函数来管理文件系统,其中包括删除文件和文件夹的功能。本篇文章将详细讲解如何在C++中实现这个功能,并提供相关的源代码示例。 首先,删除单个文件的操作通常使用`DeleteFile`函数。该函数...
通过以上介绍可以看出,在Java中,利用`java.io.File`类可以轻松地完成创建和删除文件及文件夹的操作。需要注意的是,对于删除文件夹的操作,如果文件夹非空,则需要先递归删除其中的所有文件和子文件夹后才能删除该...
批量删除文件夹下指定文件夹及文件之外的bat脚本。 比如我要将H:\tem2下除 文件 7za.exe 和 must.txt 文件夹 a 和 sdfg 外的所有文件和文件夹全删除,包括系统文件和隐藏文件。
本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹2.zip”主要包含了关于如何使用批处理脚本来删除特定路径下非指定文件和文件夹的脚本。 批处理脚本(.bat)是基于...
通过使用`FtpWebRequest`类并结合递归算法,可以有效地解决删除包含子文件夹和文件的FTP目录问题。这种方法不仅适用于C#,也适用于其他.NET语言。 通过以上步骤,我们可以高效且准确地完成FTP目录的删除工作。需要...
本主题主要围绕"文件及文件夹常用操作类",涵盖复制、剪切、查找、删除等基础功能,以及文件夹的创建与打开等操作。 1. **复制与剪切**: - **复制**:这是将文件或文件夹从一个位置创建到另一个位置的副本,通常...
使用递归删除文件
本篇文章将基于提供的代码示例,详细讲解如何使用Java来动态地删除文件和文件夹。 #### 一、基础知识准备 在深入探讨之前,我们需要了解几个基本概念: 1. **`java.io.File`类**:这是Java标准库中的一个非常重要...
VC中的文件操作,判断文件、文件夹是否存在、删除文件夹、求文件夹大小 VC 中的文件操作是一种常见的编程技术,包括判断文件、文件夹是否存在、删除文件夹、求文件夹大小等多种操作。这些操作都是基于 Windows API ...
android 删除文件夹及文件夹下面的所有文件
在Eclipse这个强大的集成开发环境中,svn插件提供了对svn的强大支持,包括添加、更新、提交以及我们今天要讨论的主题——删除文件和文件夹。下面,我们将深入探讨如何在Eclipse中使用svn进行文件和文件夹的删除操作...