2013-09-28 1 views
-2

지정한 파일이있는 폴더를 열고이 파일을 강조 표시해야합니다. 나는 이것을 오랫동안 찾고 있었지만 나는 운이 좋지 않았다. 누군가이 방법을 java를 사용하여 수행 할 수 있다고 설명 할 수 있습니까?파일이 들어있는 폴더 열기 및 강조 표시

대단히 감사하겠습니다. 파일, 폴더를 열 수 있지만 폴더를 열지 않고 파일을 강조 표시 할 수 없습니다. 크로스 플랫폼 코드는 플러스가되거나 방향으로 향하게됩니다! 감사!

@ UPDATE :

기본적으로 나는 이미지 분류기를하고 있습니다. 파일 이름이 포함 된 ArrayList이 있습니다 (예 : myarraylist.get (0)은 funny_cat.jpg를 반환합니다.

이것은 파일/폴더와 작동하는 프로그램에있는 편리한 기능입니다.

사용자가 JList에서 현재 선택된 항목을 열고 선택한 대상 파일을 포함하는 포함 된 폴더를 열 수있게하려고합니다.

나는이 코드를 게시 할 것이지만 너무 길고이 질문에 가장 불필요한데, 프로그램의 설정 섹션에서 탐색기 창을 여는 방법을 아래에 게시하여 사용할 새 디렉터리를 선택하십시오.

public void browseFolder(){ 

    System.out.println("browsing!"); 

     final JFileChooser fc = new JFileChooser(); 

     File dir = new File(core.Loader.path); 

     fc.setCurrentDirectory(dir); 

     // Windows and Mac OSX compatibility code 
     if (System.getProperty("os.name").startsWith("Mac OS X")) { 

      fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     } else { 
      fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
     } 


     fc.setApproveButtonText("Choose directory"); 
     int returnVal = fc.showOpenDialog(fc); 

      if (returnVal == JFileChooser.APPROVE_OPTION) { 


       File f = fc.getSelectedFile(); 
       // if the user accidently click a file, then select the parent directory. 
       if (!f.isDirectory()) { 
        f = f.getParentFile(); 
       } 

       // debug 
       System.out.println("Selected directory for import " + f); 

      } 
} 

@UPDATE

나는 해결책을 발견

, 아래의 답변으로 게시 할 예정입니다.

+3

당신은 무엇을 강조하는 의미합니까

기본적으로,이 솔루션은이 터미널 명령을했다? 어떤 종류의 UI가 있습니까? –

+2

a * lot * 문제를 명확히하십시오. 현재 관련 코드를 보여주십시오. –

+0

@SotiriosDelimanolis 어떤 파일을 마우스 오른쪽 버튼으로 클릭하고 "포함 폴더 열기"를 클릭하면 정확히 무슨 일이 발생 하는지를 의미합니다. explorer.exe 또는 finder.app 창이 열리 며, 클릭 한 파일과 폴더의 경로가 강조 표시됩니다. – nullwriter

답변

0

그래서 방금 수행 한 작업에서이 메서드를 호출했으며 트릭을 수행합니다. 내 방법은 내가 사용, 아래

open -R absolute/path/to/file.jpg 

이는 맥 OS X를위한 것입니다 :

public void openFileInFolder(String filename){ 

      try { 
       Process ls_proc; 

       String mvnClean = "open -R " + core.Loader.path + "/" + file_chosen; 
       System.out.println(mvnClean); 

       // debug 
       String OS = System.getProperty("os.name"); 
       System.out.println("OS is: " + OS); 


       if (OS.contains("Windows")) { 
        // will develop after 
       } else { 
        ls_proc = Runtime.getRuntime().exec(mvnClean); 
       } 


    }catch (Exception e){ 
      System.err.println("exception"); 
    } 
} 
관련 문제