2012-08-13 7 views
0

Я создал программу для загрузки изображений с одного устройства на другое. В ее нынешнем виде программа позволяет пользователю одновременно загружать только один файл. Если бы я захотел отредактировать программу, чтобы позволить пользователю загружать сразу несколько файлов, что было бы лучшим способом сделать это.Несколько файлов Uploader 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() IM неуверенный, как продолжить. Предполагая, что вы можете сделать это:

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

Установите JFileChooser, чтобы разрешить несколько выборов с использованием setMultiSelectionEnabeld. Вероятно, вы захотите установить режим выбора файлов на 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

Использование FileUtils из библиотеки apache commons. Очень мощный и полезный. Вы даже можете указать, какие форматы файлов вы хотите скопировать и т.д.

Смежные вопросы