用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解决了,也蛮好。特此记录一下。