JFileChooser提供对特定文件夹的访问权限,并将文件复制到其中



我想上传一个文件到本地文件夹(在我的电脑上(。用户应该选择一个文件。然后这个文件应该加载到一个文件夹中(这个文件夹在我的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";

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

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

最新更新