删除文件夹遇见错误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

相关文章

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re