2009-06-06 9 views
22

Normalmente, questo codice viene utilizzato per la conversione File-IFile:Come convertire da File in IFile in java, per file esterni al progetto?

IWorkspace workspace= ResourcesPlugin.getWorkspace();  
IPath location= Path.fromOSString(file.getAbsolutePath()); 
IFile ifile= workspace.getRoot().getFileForLocation(location); 

Ma questo funziona solo per i file Java all'interno del progetto. Come posso ottenere IFile quando il file File non si trova nello spazio di lavoro (non nel progetto)?

+0

Forse cercavi getFileForLocation in linea 3? –

risposta

3

Avevo bisogno di questo per l'utilizzo delle Risoluzioni Binding dal framework AST di Eclipse. Ma a quanto pare, questo non è possibile - per tutti coloro che ne hanno bisogno, controllare questo sito:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=206391

9

IResource e il suo bambino IFile erano originariamente pensati per essere utilizzati solo per le risorse situate nell'area di lavoro. Vedi lo Javadoc for IResource.

Tuttavia, poiché Eclipse 3.3 supporta anche file esterni, vedere this Eclipse Wiki page.

+0

Ho provato questa soluzione ma ottengo questo errore java.lang.IllegalStateException: Workspace è chiuso. quando provo ad ottenere l'area di lavoro, come questa: IWorkspace ws = ResourcesPlugin.getWorkspace(); Potete aiutarci per favore con questo problema? –

+0

Il collegamento Wiki di Eclipse è rotto. –

Problemi correlati