2012-02-03 10 views
6

자바에서는 폴더 (예 : c :)를 "디스크에서이 파일 찾기"또는 "포함 된 열기"와 같은 버튼 클릭시 사용자가 어떻게 열 수 있습니까? 폴더 "는 파일을 다운로드 할 때 수행되며 저장 한 위치를 알고 싶습니다. 목표는 사용자가 브라우저를 열고 디스크에 파일을 저장할 시간을 절약하는 것입니다. 여기 윈도우 7에 나를 위해 일한 것입니다 : 덕분에 enter image description herejava : 버튼 클릭시 폴더 열기

나는 대답을 얻었다 (아래 이미지는 파이어 폭스가하는 일에서 예입니다) @AlexS에

 File foler = new File("C:\\"); // path to the directory to be opened 
     Desktop desktop = null; 
     if (Desktop.isDesktopSupported()) { 
     desktop = Desktop.getDesktop(); 
     } 

     try { 
     desktop.open(foler); 
     } catch (IOException e) { 
     } 

감사를

+0

편집 된 코드는'if' 문에 의해 보호 된 블록 내에서 열지 않는 한 NullPointerException을 발생시킬 수 있습니다. –

답변

10

파일이 있다고 가정합니다. java.awt.Desktop하면이 같은 것을 사용할 수 있습니다 : 당신이 어떤 디렉토리에없는 파일과이를 호출하는 경우 적어도 Windows가 파일 형식의 기본 프로그램으로 파일을 열려고 시도하는 것

public static void openContaiingFolder(File file) { 
    String absoluteFilePath = file.getAbsolutePath(); 
    File folder = new File(absoluteFilePath.substring(0, absoluteFilePath.lastIndexOf(File.separator))); 
    openFolder(folder); 
} 

public static void openFolder(File folder) { 
    if (Desktop.isDesktopSupported()) { 
     Desktop.getDesktop().open(folder); 
    } 
} 

가 awrae 수 .

그러나이 플랫폼이 지원되는지는 알 수 없습니다.