/**
* 删除目录及下面的所有文件
*/
public static void deleteDirectory(File dir) throws IOException {
if ((dir == null) || !dir.isDirectory()) {
// throw new IllegalArgumentException("Argument " + dir+ " is not a
// directory. ");
System.out.println("Argument " + dir + " is not a directory. ");
}
else {
File[] entries = dir.listFiles();
int sz = entries.length;
for (int i = 0; i < sz; i++) {
if (entries[i].isDirectory()) {
deleteDirectory(entries[i]);
}
else {
entries[i].delete();
}
}
/**
* 改为deleteParentDir(dir,3); 目的:删除当前目录,如果上级目录为空,递归删除,层次由depth控制
*/
// dir.delete();
deleteParentDir(dir, 3);
}
}
/**
* 递归删除上级目录
* 最底层目录,由此开始向上递归,所以应该保证此目录为空
* @param depth
* 递归层次
*/
public static void deleteParentDir(File dir, int depth) throws IOException {
if (dir == null) {
throw new IllegalArgumentException("Argument " + dir + " is not a directory. ");
}
else {
dir.delete();
// 递归删除父目录,层次由 depth 控制
if (depth > 0) {
deleteParentDir(dir.getParentFile(), depth - 1);
}
}
}
分享到:
相关推荐
在Qt编程中,删除一个目录下所有文件和文件夹是一个常见的任务,这通常涉及到文件系统操作。Qt提供了QDir类来处理与目录和文件相关的操作。以下是对这个知识点的详细说明: 首先,我们需要理解QDir类。QDir是Qt中的...
在VB.NET编程环境中,删除目录下所有文件及子目录是一项常见的任务,这通常涉及到文件系统对象的使用。本文将深入探讨如何使用VB.NET编写代码来实现这一功能。 首先,我们需要了解VB.NET中的`System.IO`命名空间,...
"QT遍历删除文件夹下所有文件及目录" 在QT应用程序中,需要遍历删除文件夹下所有文件及目录是一种常见的操作。本文将详细介绍如何使用QT框架实现该功能。 一、使用QDir和QFileInfo遍历删除文件夹 在QT中,可以...
在C++编程中,删除指定目录及其所有子文件夹和文件是一项常见的操作,尤其是在系统清理、软件卸载或数据管理的场景中。本示例基于Visual Studio 2010 (VS2010)环境,使用C++语言实现这一功能。我们将探讨如何通过...
删除文件或目录的基本方法有两个:`delete()` 和 `deleteRecursively()`(在Java 7及以上版本中称为`delete()`,对于目录,它会尝试删除整个目录及其所有内容)。 1. 删除单个文件: 使用`File`类的`delete()`方法...
上述代码中的 `RecursiveDeleteDirectory` 函数会遍历指定目录下的所有文件和子目录,逐个进行删除。 至于将文件移动到回收站,Delphi 并没有内置的函数支持此操作,但我们可以借助 WinAPI 的 `SHFileOperation` ...
QT开发中的清理指定目录下所有文件是一项常见的任务,特别是在系统维护、日志管理或软件卸载等场景。本文将深入探讨如何使用QT5框架来实现这一功能,重点关注文件的枚举、选择特定类型以及安全删除。 首先,让我们...
本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹2.zip”主要包含了关于如何使用批处理脚本来删除特定路径下非指定文件和文件夹的脚本。 批处理脚本(.bat)是基于...
android 删除文件夹及文件夹下面的所有文件
本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip”包含了用于自动删除指定路径下非特定文件或文件夹的BAT脚本。以下是关于这个脚本和批处理技术的详细解释: *...
delphi 删除指定文件夹下所有文件
[删除目录]删除目录下所有文件再删除目录
如果直接使用`RD /S /Q c:\temp`命令来删除`C:\temp`目录下的所有文件和子文件夹,则会连同`temp`目录本身一起删除。 ```batch rd /s /q c:\temp ``` #### 方法二:变通使用`RD`命令 为了避免删除`temp`目录本身...
删除文件的函数是`std::filesystem::remove_all()`,它会删除指定路径下所有文件和子目录。例如: ```cpp #include #include int main() { try { std::filesystem::path path_to_delete("your_path"); ...
这段脚本会搜索并删除指定目录及子目录下的所有`.class`文件,并在删除前显示文件名。最后,它会暂停,以便用户确认结果。 总结,删除目录下所有.class文件涉及到了文件类型识别、批处理脚本编写、命令行操作以及...
但是,要删除一个目录下的所有文件,我们可以结合`for`循环和`del`命令。下面是一个示例: ```cmd for /R %d in (*) do del /F /Q "%d" ``` 这段命令会递归地遍历当前目录及其子目录,并删除所有文件。如果要指定...
在描述中提到的"过滤的文件及目录"可能指的是在删除过程中,我们可能希望忽略某些特定的文件或目录。这可以通过在`deleteDirectory`函数内部添加额外的条件来实现,检查当前文件或目录是否符合过滤规则,如果不符合...
标题中提到的"用来删除目录和其下所有文件及子目录",这正是这类操作的典型应用场景。 在Windows操作系统中,有一个名为`deltree`的命令,它用于递归地删除指定的目录及其包含的所有内容。不过,`deltree`在较新的...
0.windows批处理 1.删除指定文件夹下除指定文件夹外所有文件夹 2.删除指定文件夹下除指定文件外所有文件 3.用于删除一些代码工程产生的无效无用的编译文件
默认情况下,`QDir`会列出所有内容(包括文件和目录)。要删除文件和子目录,不需要进行此步。 3. **列举目录内容**:调用`entryList()`方法获取目录内的文件和子目录列表。例如: ```cpp QStringList entries = ...