簡體   English   中英

將IFile轉換為File

[英]Convert IFile to File

我有一個IFile對象需要用作java.io.File對象。 我正在使用以下代碼進行轉換。

file = ifile.getFullPath().toFile();

但是對file.exists()的調用返回false。

您想使用IResource.getLocation()返回本地文件路徑。 但是,請仔細閱讀javadoc注釋,因為您不能假設資源由實際文件支持(它可以是任何東西,具體取決於項目的設置方式)。

IFile是查詢到modificate工作空間的一部分,而不是實際文件。 IPath也是在Workspace上有效的查詢的一部分。

工作空間可能不包含IFile,例如。 Clonned Git項目。 一些IFile可能只是一個鏈接,而不是實際文件。 而一些IFile實際上可能存在於遠程位置。

Eclipse使用名為“EFS”的獨立文件系統。 EFS管理工作空間和本機文件系統上的文件。 您可以使用EFS查找本地文件。 (如果它存在於本地)

IFile file = ...;

// gets URI for EFS.
URI uri = file.getLocationURI();

// what if file is a link, resolve it.
if(file.isLinked()){
   uri = file.getRawLocationURI();
}

// Gets native File using EFS
File javaFile = EFS.getStore(uri).toLocalFile(0, new NullProgressMonitor());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM