java – 从目录返回的部分路径JFileChooser有时会重复

在我的应用程序中,我希望用户能够选择一个目录来存储内容.我有一个文本字段,我用它来显示他们选择的目录.如果他们只是点击一个目录(不要浏览它),一切都很好.但是,如果他们双击目录并查看其中,则目录名称是重复的.

防爆.他们在主目录中,单击文件夹桌面…返回的路径是〜/ Desktop.另一方面,如果它们在主目录中,双击文件夹Desktop,现在在Desktop文件夹中,返回的路径是〜/ Desktop / Destkop.

这是我正在做的事情:

JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(false);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {
    File f = chooser.getSelectedFile();
    loadField.setText(f.getPath());
}

我也尝试过像chooser.getCurrentDirectory()那样的东西,但这也不起作用.

编辑:使用Mac OS X,Java 1.6

最佳答案
似乎为我工作.

import javax.swing.JFileChooser;

public class FChoose {
    public static void main(String[] args) {
        java.awt.EventQueue.invokelater(new Runnable() { public void run() {
            JFileChooser chooser = new JFileChooser();
            chooser.setMultiSelectionEnabled(false);
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int returnVal = chooser.showOpenDialog(null);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                java.io.File f = chooser.getSelectedFile();
                System.err.println(f.getPath());
            }
        }});
    }
}

在Vista上6u13.你的设置或你在做什么有什么奇怪的吗?

如果在Java OS的Mac OS X实现中存在特定错误,您可能想要检查该文件是否存在,如果不是重复删除该路径的元素.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...