【问题标题】:How to check if an IFile in Java Eclipse Plugin Development really exists?如何检查 Java Eclipse 插件开发中的 IFile 是否真的存在?
【发布时间】:2011-09-01 09:34:41
【问题描述】:

我想检查一个文件是否存在于 Eclipse 工作区中。

因此,我通过以下方式创建了一个 IFile 句柄 (org.eclipse.core.resources.IFile): IFolder.getFile("文件名"); 我读到,getFile 不会检查文件是否真的存在。

那么我如何检查它是否存在?或者通过 IFiles 和 IFolders 的一般方式对于该目的是错误的?

【问题讨论】:

    标签: java eclipse file plugins


    【解决方案1】:

    IFile 继承 IResource#exists() - 这应该是您正在寻找的。​​p>

    【讨论】:

    • 请注意,这有一个固有的竞争条件,这很可能是安全漏洞,但至少会导致异常。最好只假设文件存在,用它做你想做的事,如果不存在则捕获异常并在那里处理问题。
    【解决方案2】:

    IResource 是提供方法exist() 的IFile 和IFolder 的公共父级。你应该使用它。

    【讨论】:

      【解决方案3】:

      您应该在文件对象上调用方法IResource.refreshLocal(..),然后调用IResource.exists()

      对我来说,refreshLocal 电话是必要的。否则,如果文件系统中存在文件,exists 将返回 false 事件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-11
        • 1970-01-01
        • 2020-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-11
        相关资源
        最近更新 更多