public class DeleteFileUtil {
/**
* 删除文件,可以是单个文件或文件夹
* @param fileName 待删除的文件名
* @return 文件删除成功返回true,否则返回false
*/
public static boolean delete(String fileName){
File file = new File(fileName);
if(!file.exists()){
System.out.println("删除文件失败:"+fileName+"文件不存在");
return false;
}else{
if(file.isFile()){
return deleteFile(fileName);
}else{
return deleteDirectory(fileName);
}
}
}
/**
* 删除单个文件
* @param fileName 被删除文件的文件名
* @return 单个文件删除成功返回true,否则返回false
*/
public static boolean deleteFile(String fileName){
File file = new File(fileName);
if(file.isFile() && file.exists()){
file.delete();
System.out.println("删除单个文件"+fileName+"成功!");
return true;
}else{
System.out.println("删除单个文件"+fileName+"失败!");
return false;
}
}
/**
* 删除目录(文件夹)以及目录下的文件
* @param dir 被删除目录的文件路径
* @return 目录删除成功返回true,否则返回false
*/
public static boolean deleteDirectory(String dir){
//如果dir不以文件分隔符结尾,自动添加文件分隔符
if(!dir.endsWith(File.separator)){
dir = dir+File.separator;
}
File dirFile = new File(dir);
//如果dir对应的文件不存在,或者不是一个目录,则退出
if(!dirFile.exists() || !dirFile.isDirectory()){
System.out.println("删除目录失败"+dir+"目录不存在!");
return false;
}
boolean flag = true;
//删除文件夹下的所有文件(包括子目录)
File[] files = dirFile.listFiles();
for(int i=0;i<files.length;i++){
//删除子文件
if(files[i].isFile()){
flag = deleteFile(files[i].getAbsolutePath());
if(!flag){
break;
}
}
//删除子目录
else{
flag = deleteDirectory(files[i].getAbsolutePath());
if(!flag){
break;
}
}
}
if(!flag){
System.out.println("删除目录失败");
return false;
}
//删除当前目录
if(dirFile.delete()){
System.out.println("删除目录"+dir+"成功!");
return true;
}else{
System.out.println("删除目录"+dir+"失败!");
return false;
}
}
public static void main(String[] args) {
//String fileName = "g:/temp/xwz.txt";
//DeleteFileUtil.deleteFile(fileName);
String fileDir = "G:/temp/temp0/temp1";
//DeleteFileUtil.deleteDirectory(fileDir);
DeleteFileUtil.delete(fileDir);
}
}
分享到:
相关推荐
这些功能包括了文件的上传、属性修改、文件重命名、文件编辑、新建文件与目录,以及批量操作如批量删除和修改属性等。下面将对这些核心知识点进行详细的阐述。 首先,【上传文件】是将本地计算机上的文件传输到网络...
以下是一些关于如何强行删除文件和目录的知识点: 1. **结束进程**:如果文件或目录正在被某个程序使用,你可以通过任务管理器查看哪个进程占用了该文件,然后结束该进程。首先按`Ctrl + Shift + Esc`打开任务管理...
Qt提供了QDir类来处理与目录和文件相关的操作。以下是对这个知识点的详细说明: 首先,我们需要理解QDir类。QDir是Qt中的一个核心类,它提供了对文件系统目录的操作,如读取、遍历、创建和删除目录以及文件。在`Qt...
在这个"python爬虫-09-创建、删除文件和目录"的主题中,我们将探讨如何在Python中执行这些基本的文件系统操作。 首先,我们来看创建文件。Python的内置模块`os`提供了与操作系统交互的功能,包括文件和目录的操作。...
* -r, -R, --recursive 指示 rm 将参数中列出的全部目录和子目录均递归地删除。 * -v, --verbose 详细显示进行的步骤 * --help 显示此帮助信息并退出 * --version 输出版本信息并退出 实例一:删除文件 file,系统...
删除文件或目录的基本方法有两个:`delete()` 和 `deleteRecursively()`(在Java 7及以上版本中称为`delete()`,对于目录,它会尝试删除整个目录及其所有内容)。 1. 删除单个文件: 使用`File`类的`delete()`方法...
本文将详细讲解如何安全有效地删除文件及其所在的整个目录,并探讨相关注意事项和可能的风险。 首先,让我们了解目录(也称为文件夹)的基本概念。在计算机系统中,目录是一种组织文件的方式,它允许我们将相关的...
Linux 操作系统文件和目录操作报告 Linux 操作系统中的文件类型可以分为普通文件、目录文件、链接文件、设备文件、套接字文件和管道文件。普通文件是存储数据的文件,目录文件是存储文件的文件,链接文件是指向其他...
"QT遍历删除文件夹下所有...通过使用QDir和QFileInfo类,可以遍历文件夹下的所有文件信息,然后根据文件信息来判断是否删除文件或目录。同时,使用QProcess类可以删除指定文件,获取当前工程目录,设置文件夹权限等。
`File.Delete`和`Directory.Delete`分别用于删除文件和目录,`Directory.Delete`的第二个参数`True`表示即使目录非空也要删除,这是递归删除的关键。 这段代码在运行时会删除指定路径下的所有文件和子目录,并在...
本主题将详细讲解如何使用 Delphi 来删除目录和文件,包括将文件移动到回收站以及直接进行物理删除。 首先,让我们了解 Delphi 中删除文件的基本方法。在 Delphi 中,我们可以使用 `System.SysUtils` 单元中的 `...
在这个场景中,"递归删除文件或子目录"指的是编写一个程序,它能够遍历并删除指定目录下的所有文件和子目录,包括它们的子孙目录,但会跳过那些被标记为只读属性的文件和目录。这个功能在清理或整理文件系统时非常...
也可以使用 -r 选项来删除目录和其下的所有文件,例如,删除一个名为 test 的目录,可以使用以下命令: rm -r test 3. 文件和目录的复制 在 Linux 中,可以使用 cp 命令来复制文件和目录,例如,复制一个名为 ...
使用 `os` 模块和 `os.walk()` 函数可以递归删除目录和文件。例如: ``` import os for root, dirs, files in os.walk('目录路径', topdown=False): for name in files: os.remove(os.path.join(root, name)) ...
在PHP中进行文件和目录操作是一项基础但重要的技能,它涉及到创建、读取、修改和删除文件和目录。通过熟练掌握这些操作,开发者可以有效地管理Web应用中的数据和资源。 首先,让我们来理解目录操作的相关函数。在...
### Linux文件和目录操作命令详解 #### 一、概述 Linux作为一款强大的开源操作系统,广泛应用于服务器、桌面以及嵌入式设备等领域。对于初学者来说,掌握基本的文件和目录操作命令至关重要。本文将深入介绍Linux...
《VB监控文件目录修改》 在信息技术领域,文件系统监控是一项关键的技术,它允许开发者跟踪并响应文件系统中的各种变化,如文件的创建、删除、重命名和修改等。Visual Basic(VB)作为一款强大的编程工具,提供了...
然而,当需要删除一个包含多个文件和子目录的目录时,这些基本函数并不足够。这时,我们需要编写递归函数来遍历目录并逐个删除其中的文件和子目录。 以下是一个可能的实现方式: ```php function recursiveDelete...
删除目录的操作与删除文件略有不同,因为目录可能包含子目录和文件。`rmdir` 命令用于删除空目录,而 `rm` 命令可以删除包含内容的目录。使用 `rm` 删除目录时,需要加上 `-r` 或 `-R` 选项以进行递归删除。 以下是...
* 仅可读(r):目录的读权限仅允许我们读目录,获得在该目录中所有文件名的列表,不可添加删除其中的文件或目录,也不可读取和改写其中文件的内容。 * 仅可写(w):如果只有写权限,仍然无法往目录中添加删除或...