0
org.eclipse.core.runtime.CoreException: Could not move: C:\gram\zmedia.
    at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55)
    at org.eclipse.core.filesystem.provider.FileStore.move(FileStore.java:415)
    at org.eclipse.core.internal.filesystem.local.LocalFile.move(LocalFile.java:352)
    at com.zmedia.zide.config.model.Service.updateDeploymentSetup(Service.java:923)
    at com.zmedia.zide.config.model.Service.update(Service.java:886)
    at com.zmedia.zide.util.ServiceAPI.create(ServiceAPI.java:239)
    at com.zmedia.zide.ui.wizards.pages.CreateServicePage$5.run(CreateServicePage.java:525)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: org.eclipse.core.runtime.CoreException: Problems encountered while deleting files.
    at org.eclipse.core.internal.filesystem.local.LocalFile.delete(LocalFile.java:125)
    at org.eclipse.core.filesystem.provider.FileStore.move(FileStore.java:411)
    ... 6 more

大家好 ,

我们在 eclipse 之上开发了一个插件。我们为用户提供了一个选项,可以在 eclipse 中删除他们的旧项目。

问题: 如果在此目录上打开文件或任何进程在删除操作时使用其目录,则会出现问题。此问题仅适用于 windows 用户。

有没有办法强制删除windows上的目录?

我怎样才能像这样通知用户“这个进程正在使用我们的目录。请关闭这个进程并继续”。

有没有办法知道哪个进程正在访问它?

4

5 回答 5

3

您可以使用Unlocker,它具有可移植版本和命令行选项(取决于其许可证),您可以将它与您的插件一起发布并通过命令行使用它来解锁使用的文件。

于 2012-09-24T11:49:42.877 回答
0

有没有办法强制删除windows上的目录?

您可以杀死持有锁的进程或要求用户关闭该进程。不幸的是,这可能是日食过程本身或资源管理器。

于 2012-08-29T17:17:08.687 回答
0

在调试情况下,要知道哪个进程正在使用文件,您可以使用此处描述的出色的 Process Explorer 。

AFAIK,Java SDK 没有简单的方法可以知道哪个进程正在使用它。

您可以做的是将文件标记为 deleteOnExit() 并且当用户实际退出 Eclipse 时它将被删除。

于 2012-09-24T08:57:19.340 回答
0

可能是您自己的锁定文件的插件。在尝试删除之前尝试实施一种方法/策略来“释放”它们。您可以使用 Apache Commons IO 来帮助您构建/识别它。看看FileDeleteStrategy。还要检查“FORCE”选项。

于 2012-09-24T19:36:29.870 回答
0

我怀疑仅在 Java 中是否有很好的方法可以找出阻止您删除文件夹的进程。这也可能有点激进。如果您无法移动并显示一个对话框,其中列出了无法移动(或删除)的项目,那么为什么不复制,以便用户可以自己处理它。毕竟,文件保持打开状态可能是有原因的。

于 2012-09-26T07:16:05.133 回答