![](/img/trans.png)
[英]How do you get the absolute paths for multiple file selections using jfilechooser from an array of file names in java
[英]How to set all selected file absolute paths/names by JFileChooser into a JTextField
我有一个带有JButton
小型应用程序,用于打开JFileChooser
来选择多个文件。 因此,当我单击其approve button
我应该能够将所有选定文件的绝对路径或名称设置为JTextField
(在我的情况下为jTextField1
)。
如果我只选择了1个文件,但没有选择多个文件,我知道该怎么做
我怎样才能做到这一点???
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser copy = new JFileChooser();
copy.setApproveButtonText("Copy");
copy.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
copy.setMultiSelectionEnabled(true);
int copyDialog = copy.showOpenDialog(null);
File[] files = copy.getSelectedFiles();
if (copyDialog == JFileChooser.APPROVE_OPTION) {
if(files.length>=2){
jTextField1.setText(files.toString()); // I need to set jTextField1's text with all the selected file paths or names
}else{
jTextField1.setText(copy.getSelectedFile().getAbsolutePath().toString());
}
} else {
}
}
您可以使用流收集和加入文件:
Arrays.stream(files)
.map(File::getAbsolutePath)
.collect(Collectors.joining("\n"));
这将通过换行符连接路径。 您可以根据需要更改定界符。 在这种情况下,不需要if(files.length>=2)
如果无法使用Java 8,则可以创建一个创建完整字符串的方法:
private String getPaths(File[] files) {
if (files == null || files.length == 0) {
return "";
}
StringBuilder paths = new StringBuilder();
paths.append(files[0].getAbsolutePath());
for (int i = 1; i < files.length; i++) {
paths.append('\n');
paths.append(files[i].getAbsolutePath());
}
return paths.toString();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.