스니펫:IFile을 File로 바꾸기

위클립스
이동: 둘러보기, 찾기
스니펫 분류
스니펫 (3)
스니펫/JDT (1)
스니펫/PDE (3)
스니펫/SWT (7)

꽤 고루한 주제 같겠지만 IFile을 Java File로 바꾸는 방법을 정확하게 알고 있는 사람은 의외로 드물다. 특히 Git에서 클론된 프로젝트의 경우 실제 파일들이 물리적으로 워크스페이스에 속해있지 않으므로, IPath를 이용한 연산을 이용해서는 안된다. 올바른 경로를 얻기 위해서는 이클립스 파일 시스템(EFS)을 이용해야 한다.

IFile file = ...;
 
// 파일의 워크스페이스 내의 고유 주소를 얻는다. (프로젝트가 닫겨있건 열려있건 상관 없다)
URI uri = file.getLocationURI();
 
// IFile이 링크인 경우, 원본 파일의 URI를 이용해야 한다.
if(file.isLinked()){
   uri = file.getRawLocationURI();
}
 
// 이클립스 파일 시스템을 이용하여, 주소를 바탕으로 네이티브 파일을 얻는다.
File javaFile = EFS.getStore(uri).toLocalFile(0, new NullProgressMonitor());
개인 도구
이름공간
변수
행위
포탈
탐색
도움
도구모음