多文件上传器Java

时间:2012-08-13 18:14:19

标签: java file upload uploader

我创建了一个程序,用于将图像从一个设备上传到另一个设备。目前,该程序仅允许用户一次上传一个文件。如果我想编辑程序以允许用户一次上传多个文件,那么最好的方法是什么。

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;

当我用File数组替换该行时(如上所示),我在行上出现错误:

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

2 个答案:

答案 0 :(得分:2)

File.listFilesFile.listFiles(FileFilter)

多文件选择

很抱歉,这就是我认为你想要的,但你正在使用JFileChooser来选择一个目录,所以我假设你要做一个目录列表:P

设置JFileChooser以允许使用setMultiSelectionEnabeld进行多项选择。如果您仍希望他们能够选择目录,您可能希望将文件选择模式设置为JFileChooser.FILES_ONLYJFileChooser.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;

}

答案 1 :(得分:1)

使用apache commons库中的FileUtils。非常强大和有用。您甚至可以指定要复制的文件格式等。