2016-06-29 1 views
1

내 프로그램에서 소켓 프로그래밍을 사용하여 클라이언트에서 서버로 일부 파일을 보내려고합니다. 나는 하나 이상의 파일을 선택할 수 있도록 void setMultiSelectionEnabled(boolean b) 메서드를 사용하고 있지만 파일 경로를 가져 오려고하면 오류가 발생합니다. .jfilechooser에서 내가 선택한 파일의 경로를 어떻게 얻을 수 있습니까?

JFileChooser choose = new JFileChooser(); 

    choose.setAcceptAllFileFilterUsed(false); 
    choose.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "jpeg")); 
    choose.setAcceptAllFileFilterUsed(true); 
    choose.setMultiSelectionEnabled(true); 
    File[] f = choose.getSelectedFiles(); 
    choose.showOpenDialog(this); 

    String filePath = f.getAbsolutePath(); 
    String fname = f.getName(); 

    Client_ftp cli = new Client_ftp(); 
    if(cli.kirim(filePath, fname)) { 
     jLabel1.setText("Success. ."); 
    } else { 
     jLabel1.setText("failed"); 
    } 

답변

0

f.getSelectedFile() getAbsolutePath() 그래서

일부 설명 추가, 편집 :

당신은 파일 츄의 절대 경로를 얻을 수 있습니다 당신은 .. 여기 내 코드는 선택한 파일의 경로를 가져 오려면 getSelectedFile (s)() 메서드를 사용해야합니다. 나는 그것이 당신을 도왔 으면 좋겠 :

1

f 배열입니다. f의 각 File에 대해 getAbsolutePath() 메서드를 호출하기 전에 배열을 인덱싱해야합니다. 그렇게하기 전에 null을 확인하십시오.

예 : f [0] .getAbsolutePath();

+0

고맙습니다. 작동하지만 선택하는 파일을 보내지 않습니다. –

관련 문제