如何使用 Java 重命名本地计算机上的文件夹?

How do I rename a folder on my local machine using Java?

我想使用 Java 7 重命名 文件夹 。我试过使用:

srcDir.renameTo(desDir);

但据我所知(和个人经验).renameTo 仅适用于重命名文件。我也厌倦了使用:

FileUtils.moveDirectory(srcDir, desDir);

但是我得到这个错误:

Exception in thread "main" java.io.IOException: Unable to delete file: C:\webapps\WEB-INF\lib\stax-api-1.0-2.jar
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2279)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
at org.apache.commons.io.FileUtils.moveDirectory(FileUtils.java:2756)
at batDel.batDelJavaC.main(batDelJavaC.java:52)

注意:我在 Tomcat 8 服务器上运行,但在运行我的项目之前已将其停止。

有问题的 .jar 文件很可能实际上是由应用程序服务器等某些进程打开的。在关闭文件之前,您将无法移动或删除它。

在 Windows(看起来您正在使用)上,您可以使用 SysInternals 的 Process Explorer 等实用程序来查看是否有某个进程打开了文件。