gpt4 book ai didi

Java删除不删除

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:33 24 4
gpt4 key购买 nike

我正在编写一些代码来删除目录中的所有文件,到目前为止我已经:

@ViewScoped
@ManagedBean
public class Delete {

public void DeleteFiles() throws IOException {
System.out.println("Called deleteFiles");
File file = new File("D:/Documents/NetBeansProjects/printing~subversion/fileupload/build/web/resources/pdf/up617648/");

String[] myFiles;
if (file.isDirectory()) {
myFiles = file.list();
for (int i = 0; i < myFiles.length; i++) {
File myFile = new File(file, myFiles[i]);
System.out.println(myFile);
myFile.delete();
}
}

}
}

当我调用它时,我可以看到所有文件都被调用等,但没有任何文件被删除,这是为什么,这是我在控制台中得到的:

INFO: Called deleteFiles
INFO: D:\Documents\NetBeansProjects\printing~subversion\fileupload\build\web\resources\pdf\up617648\1.png
INFO: D:\Documents\NetBeansProjects\printing~subversion\fileupload\build\web\resources\pdf\up617648\lecture04_A_slides.pdf

路径中的所有文件都被删除,但在 Netbeans 中我仍然可以看到资源文件夹中的文件,即使该文件夹的直接路径是空的,我已经完成了干净的构建。

这有点奇怪,它会从目录中删除文件,但在 Netbeans 中它仍然显示文件,重新启动 netbeans 然后文件会重新显示到目录中。

最佳答案

Windows 文件系统对于 Java 的删除方式并不友好。最有可能的是其他东西持有该文件的引用/句柄,这使得 Windows 阻止其删除。如果您之前接触过同一个文件并且没有正确清理资源,那么这个东西可能是任何东西,甚至是 JVM 本身。

关于Java删除不删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com