gpt4 book ai didi

java - JFileChooser 在 OSX 10.7 上不返回完整文件名

转载 作者:行者123 更新时间:2023-11-29 09:12:37 26 4
gpt4 key购买 nike

问题是 JFileChooser 返回的 File 对象的文件名不完整。更准确地说,它返回不带文件扩展名部分的文件名。我尝试使用 getPathgetAbsolutePathgetCanonicalPath 检索路径,但它仍然返回没有扩展部分的相同路径。相同的程序和代码在 Windows、Linux 和 OSX 10.6 上运行良好

问题出现在 OSX 10.7.4 和 Java SE 10.6.0_33-b03-424 上。有谁知道解决此问题的方法,或者至少可以确认发生了这种情况?

编辑:

JFileChooser myImageChooser = new JFileChooser();
myImageChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int val = myImageChooser.showDialog(NewJFrame.this, "Select Image");

JFileChooser myImageChooser = new JFileChooser();
myImageChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int val = myImageChooser.showDialog(NewJFrame.this,
"Select Image");

if (val == JFileChooser.APPROVE_OPTION) {
File f = myImageChooser.getSelectedFile();
System.err.println(myImageChooser.getSelectedFile().getAbsolutePath());
try {
System.err.println(myImageChooser.getSelectedFile().getCanonicalPath());
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
System.err.println(myImageChooser.getSelectedFile().getName());
System.err.println(myImageChooser.getSelectedFile().getPath());

//loadImage(f);
//Util.event("LoadImage", f.getName());
}

另外我刚刚注意到一些非常有趣的事情,它对某些文件正常工作,相同的文件在 Finder 中具有可见扩展名,但对于那些 Finder 不显示扩展名的文件,此操作失败。我已通过在 bash 终端中执行 ls 检查文件是否确实具有扩展名。

编辑 2:

在 Finder 中打开“显示所有文件扩展名”后,JFileChooser 开始返回带扩展名的文件名。这看起来像是 JFileChooser 的底层实现中的设计错误。这并不能真正帮助解决问题,因为在我的情况下,这是针对普通用户的消费产品。

最佳答案

我更新了您代码中的某些部分,并得到了这个输出:

C:\Users\Arno\Documents\My Games\Skyrim\RendererInfo.txt C:\Users\Arno\Documents\My Games\Skyrim\RendererInfo.txt RendererInfo.txt C:\Users\Arno\Documents\My Games\Skyrim\RendererInfo.txt

这是更新后的代码:

JFileChooser myImageChooser = new JFileChooser();
myImageChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int val = myImageChooser.showDialog(null, "Select Image");

if (val == JFileChooser.APPROVE_OPTION) {
File f = myImageChooser.getSelectedFile();
System.err.println(myImageChooser.getSelectedFile()
.getAbsolutePath());
try {
System.err.println(myImageChooser.getSelectedFile()
.getCanonicalPath());
} catch (IOException ex) {

}
System.err.println(myImageChooser.getSelectedFile().getName());
System.err.println(myImageChooser.getSelectedFile().getPath());

// loadImage(f);
// Util.event("LoadImage", f.getName());
}
}

关于java - JFileChooser 在 OSX 10.7 上不返回完整文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11447656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com