2009-06-06 12 views
22

Normalement, ce code est utilisé pour convertir File-IFile:Comment convertir un fichier en IFile en Java, pour des fichiers en dehors du projet?

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

Mais cela ne fonctionne que pour les fichiers Java dans le projet. Comment puis-je obtenir le fichier IFile quand File est pas dans l'espace de travail (pas dans le projet)?

+0

Vouliez-vous dire getFileForLocation dans la ligne 3? –

Répondre

9

IResource et son enfant IFile étaient à l'origine destinés à être utilisés uniquement pour les ressources situées dans l'espace de travail. Voir le Javadoc for IResource.

Cependant, depuis Eclipse 3.3 il y a le support des fichiers externes aussi bien, voir this Eclipse Wiki page.

+0

J'ai essayé cette solution, mais je reçois cette erreur java.lang.IllegalStateException: Espace de travail est fermé. lorsque je tente d'obtenir l'espace de travail, comme ceci: IWorkspace ws = ResourcesPlugin.getWorkspace(); Pouvez-vous s'il vous plaît aider avec ce problème? –

+0

Le lien Eclipse Wiki est cassé. –