2012-08-13 2 views
0

한 장치에서 다른 장치로 이미지를 업로드하는 프로그램을 만들었습니다. 그대로, 프로그램은 사용자가 한 번에 하나의 파일을 업로드 할 수 있습니다. 사용자가 한 번에 여러 파일을 업로드 할 수 있도록 프로그램을 편집하려면 가장 좋은 방법은 무엇입니까?다중 파일 업 로더 Java

String source1 = source.getSelectedFile().getPath(); 
System.out.println("Source1: " + source1); 
String nwdir1 = nwdir.getSelectedFile().getPath() + "\\" + filename; 
System.out.println("nwdir1: " + nwdir1); 

Path source = Paths.get(source1); 
Path nwdir = Paths.get(nwdir1); 

try { 
    Files.copy(source, nwdir); 

난 당신이 .getSelectedFiles()를 할 수 발견,하지만 한 것을 계속하는 방법을 모르는 .getPath() 메신저를 허용하지 않는. 당신이 할 수있는 가정하면 : 나는 두 번째 줄 일을 가겠어요 어떻게

File[] source1 = source.getSelectedFiles(); 

: 나는 (위 그림 참조) 파일 배열 라인을 교체 할 때

String nwdir1 = nwdir.getSelectedFile().getPath() + "\\" + filename; 

을, 나는 라인에 오류가 :

Path source = Paths.get(source1); 
Path nwdir = Paths.get(nwdir1); 
+0

사용자가 여러 파일을 지정하도록 한 다음 한 번에 모두로드하도록하는 것이 좋습니다. –

+0

그게 아이디어 였어. 하지만 100 % 확신 할 수는 없습니다. 현재 디렉토리를로드하지만 사용자가 하나의 파일 만 선택할 수 있습니다. –

답변

2

File.listFiles 또는 File.listFiles(FileFilter)

다중 파일 선택 그게 내가 당신이 원하는 무슨 생각을하지만 당신은 JFileChooser로를 사용하고,

죄송합니다 디렉터리를 선택하여 디렉터리 목록을 만들고 싶다고 가정하십시오. P

setMultiSelectionEnabeld을 사용하여 복수 선택을 허용하도록 JFileChooser을 설정하십시오. 여전히 디렉토리를 선택할 수있게하려면 파일 선택 모드를 JFileChooser.FILES_ONLY 또는 JFileChooser.FILES_AND_DIRECTORIES으로 설정하는 것이 좋습니다.

당신은 아마 또한 사용자가 단순 위해, 선택

업데이트 FileNameExtensionFilter

을 살펴 수있는 제한, 대화 상자가 디렉토리의 내용을 필터링 할 수 있도록 파일 필터를 설정하는 것이 좋습니다

JFileChooser chooser = new JFileChooser(); chooser.setMultiSelectionEnabled(true); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); FileNameExtensionFilter filter = new FileNameExtensionFilter("Images", "png", "jpg", "jpeg"); chooser.setFileFilter(filter); switch (chooser.showOpenDialog(null)) { case JFileChooser.APPROVE_OPTION: String currentPath = chooser.getCurrentDirectory().getPath(); File[] files = chooser.getSelectedFiles(); if (files.length > 0) { System.out.println("You have choosen " + files.length + " from " + currentPath); } else { System.out.println("You didn't selected anything"); } break; } 
+0

이 작업의 예를 보여 주시겠습니까? 그냥 코드를 작성하려고합니다. 디렉토리에있는 파일을 나열하는 것만으로도 충분합니까? 디렉토리의 파일 목록을 표시하도록 코드를 관리했습니다. 사용자가 특정 파일을 선택하는 방법을 모르겠다. –

+0

@AdamHinx 죄송합니다, 저, 다른 아이디어로 업데이트했습니다. – MadProgrammer

+0

빠른 응답을 주셔서 감사합니다. 내가 줄을 추가했습니다 source.setMultiSelectionEnabled (true); 이렇게하면 여러 개의 파일을 선택할 수 있지만 하나만 전송됩니다. 나는 모양을 가지고 다녔다. 그러나 그것을 기울인다. –

1

apache 공유 라이브러리의 FileUtils를 사용하십시오. 매우 강력하고 유용합니다. 당신은 당신이 복사 할 파일 형식을 지정할 수 등