删除文件夹遇见错误0x80070091目录不是空的

2024-09-06 00:36

本文主要是介绍删除文件夹遇见错误0x80070091目录不是空的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用java代码转移文件夹的时候发生了一点错误,导致递归生成了很多文件夹,删除文件夹的时候遇见错误0x80070091目录不是空的

有点恐慌,不会被我搞坏了吧。

一开始以为是权限问题,用命令"rd /s /q xxx"强删也不行。重启电脑再删除还是报这个错误。

搜了一下,看见有说往最后一个文件夹放一个txt文件,再删除就可以了。

用java程序放了一个(代码星火写的)

import java.io.File;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        File rootDir = new File("D:/aaa");
        File lastEmptyFolder = findLastEmptyFolder(rootDir);
        if (lastEmptyFolder != null) {
            File testFile = new File(lastEmptyFolder, "test.txt");
            try {
                if (testFile.createNewFile()) {
                    System.out.println("test.txt 文件已创建在:" + testFile.getAbsolutePath());
                } else {
                    System.out.println("无法创建 test.txt 文件。");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("未找到空文件夹。");
        }
    }

    private static File findLastEmptyFolder(File dir) {
        File[] files = dir.listFiles();
        if (files == null || files.length == 0) {
            return dir; // 如果当前目录为空,则返回当前目录
        }
        File lastEmptyFolder = null;
        for (File file : files) {
            if (file.isDirectory()) {
                lastEmptyFolder = findLastEmptyFolder(file); // 递归查找子目录
                if (lastEmptyFolder != null) {
                    break; // 一旦找到空文件夹,立即停止搜索
                }
            }
        }
        return lastEmptyFolder;
    }
}

尽管有了txt文件,再删除还是报这个错误

 

本着不屈不饶的精神,然后问了一下星火怎么解决这个问题

星火说,这还不简单,你递归删除呗

然后啪的一下给了我python代码

我很倔强,让它换成java了

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class DeleteFolder {
    public static void main(String[] args) {
        String folderPath = "your_folder_path"; // 替换为你要删除的文件夹路径
        deleteFolderRecursively(new File(folderPath));
    }

    private static void deleteFolderRecursively(File folder) {
        if (folder.isDirectory()) {
            for (File file : folder.listFiles()) {
                deleteFolderRecursively(file);
            }
        }
        try {
            Files.delete(folder.toPath());
            System.out.println("已成功删除:" + folder.getAbsolutePath());
        } catch (IOException e) {
            System.err.println("删除文件或文件夹时出错:" + folder.getAbsolutePath() + " - " + e.getMessage());
        }
    }
}

调用了一下,会报错,赶紧停掉

不甘心再调,还是报错

我想着到底删掉了一些文件夹没有

给代码里加了数字,看了一下,确实是有在删除的

在给最后一个空文件夹建txt文件的时候就看到了我的文件夹数量太多了 1000+

最后多调用了几次递归删除,报错不管它,然后就删掉了

这叫毒药附近就有解药么,哈哈

因为是特殊的断网环境,所以不能用别的软件。能用java解决了,也蛮好。特此记录一下。

 

这篇关于删除文件夹遇见错误0x80070091目录不是空的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140504

相关文章

SpringBoot全局异常拦截与自定义错误页面实现过程解读

《SpringBoot全局异常拦截与自定义错误页面实现过程解读》本文介绍了SpringBoot中全局异常拦截与自定义错误页面的实现方法,包括异常的分类、SpringBoot默认异常处理机制、全局异常拦... 目录一、引言二、Spring Boot异常处理基础2.1 异常的分类2.2 Spring Boot默

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

MySQL数据目录迁移的完整过程

《MySQL数据目录迁移的完整过程》文章详细介绍了将MySQL数据目录迁移到新硬盘的整个过程,包括新硬盘挂载、创建新的数据目录、迁移数据(推荐使用两遍rsync方案)、修改MySQL配置文件和重启验证... 目录1,新硬盘挂载(如果有的话)2,创建新的 mysql 数据目录3,迁移 MySQL 数据(推荐两

MyBatis-Plus逻辑删除实现过程

《MyBatis-Plus逻辑删除实现过程》本文介绍了MyBatis-Plus如何实现逻辑删除功能,包括自动填充字段、配置与实现步骤、常见应用场景,并展示了如何使用remove方法进行逻辑删除,逻辑删... 目录1. 逻辑删除的必要性编程1.1 逻辑删除的定义1.2 逻辑删php除的优点1.3 适用场景2.

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

C#实现插入与删除Word文档目录的完整指南

《C#实现插入与删除Word文档目录的完整指南》在日常的办公自动化或文档处理场景中,Word文档的目录扮演着至关重要的角色,本文将深入探讨如何利用强大的第三方库Spire.Docfor.NET,在C#... 目录Spire.Doc for .NET 库:Word 文档处理利器自动化生成:C# 插入 Word

MySQL中的DELETE删除数据及注意事项

《MySQL中的DELETE删除数据及注意事项》MySQL的DELETE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量删除、避免全表删除、使用TRUNCATE、使用ORDERBY和LIMI... 目录1. 基本语法单表删除2. 高级用法使用子查询删除删除多表3. 性能优化策略使用索引批量删除避免