【问题标题】:JFileChooser give access to a specific folder and copy a file to itJFileChooser 允许访问特定文件夹并将文件复制到其中
【发布时间】:2020-12-02 04:08:09
【问题描述】:

我想将文件上传到本地文件夹(在我的 PC 上)。用户应该选择一个文件。这个文件应该被加载到一个文件夹中(这个文件夹在我的 Java 类中是硬编码的)。不幸的是,我没有找到一个好的解决方案。 我刚刚发现了一些关于 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";

【问题讨论】:

  • 上传文件 - 从哪里上传?当人们想使用网络将数据复制到远程系统时,通常会说“上传”。 JFileChooser 显示的是本地文件系统,而不是远程文件系统,那么你到底想做什么?
  • 对,我想复制一个文件并将其移动到另一个目录(都在同一台计算机上)。但我不确定这是否可以通过 FileChooser @Joni

标签: java swing file directory jfilechooser


【解决方案1】:

复制或移动文件与选择文件的方式无关。复制文件的简单方法是使用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。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多