JFileChooser 授予对特定文件夹的访问权限并将文件复制到该文件夹

JFileChooser give access to a specific folder and copy a file to it

我想将文件上传到本地文件夹(在我的电脑上)。用户应该 select 一个文件。这个文件应该被加载到一个文件夹中(这个文件夹在我的 Java class 中是硬编码的)。不幸的是我没有找到一个好的解决方案。 我刚刚发现了一些关于 JFileChooser 的东西,它可以很好地打开一个文件,但不能加载一个文件。

public static void main(String[] args){
    JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
            "JPG & GIF Images", "jpg", "gif");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(null);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
        System.out.println("You chose to open this file: " +
                chooser.getSelectedFile().getName());
    }
}

是否可以仅授予文件选择器访问特定文件夹的权限?该文件夹是这样硬编码的:

public static String uploadPath = System.getProperty("user.dir") + "/uploads Modul1";

复制或移动文件与选择文件的方式无关。复制文件的简单方法是使用 Files.copy method。以下是将其添加到现有代码的方法:

    int returnVal = chooser.showOpenDialog(null);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
        File selectedFile = chooser.getSelectedFile();
        System.out.println("You chose to copy this file: " +
            selectedFile.getName());

        Path newPath = Paths.get(uploadPath, selectedFile.getName());
        Files.copy(selectedFile.toPath(), newPath);
    }

官方教程有复制文件的部分:https://docs.oracle.com/javase/tutorial/essential/io/copy.html

如果您想移动文件而不是复制它,请使用Files.move而不是Files.copy