java - 如何使用 JFileChooser 添加双反斜杠而不是单个反斜杠

标签 java eclipse path jfilechooser backslash

我正在创建一个程序来搜索目录路径。我已经使用 JFileChooser 来做到这一点,这非常棒。这是它的代码。

JButton btnPathBrowser = new JButton("Select Database");
        btnPathBrowser.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                final JFileChooser fc = new JFileChooser();
                fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                int response = fc.showOpenDialog(Create.this);
                if (response == JFileChooser.APPROVE_OPTION); {
                    txtPath.setText(fc.getSelectedFile().toString());
                    //fileName = fc.getSelectedFile().toString();

                }


            }
        }); 

现在,当我运行这个时,我得到了这样写的路径。 GUI showing the Path

所以你可以看到路径是用一个反斜杠分隔的,例如 C:\User\Folder\Database 但我希望它像这样用两个反斜杠来分隔路径。 C:\用户\数据库。我尝试了这个但出现错误:

txtPath.setText(fc.getSelectedFile().toString().replace("\", "\\"));

我想这样使用它:

String  sourceFileName              = new String(txtPath.getSelectedText());

我对此很陌生,因此任何针对我的代码的正确方向的指针都将受到赞赏。

最佳答案

您不需要更换任何东西。您只需要转义字符串文字中的斜杠,例如

String myPath = "C:\\foo\\bar";

即使如此,您也可以使用独立于平台的版本

String myPath = "C:/foo/bar";

如果您确实需要用双斜杠替换斜杠,则必须对它们进行转义(因为参数是字符串文字),因此您最终会得到

String foo = bar.replace("\\", "\\\\"); // Convert one slash to two slashes

此外,如果您要使用以正则表达式作为参数的 replaceAll 方法,则需要双重转义。一次用于字符串文字,一次用于正则表达式引擎:

String foo = bar.replaceAll("\\\\", "\\\\\\\\"); // Convert one slash to two slashes

但重申一下,在您的情况下,您不需要双斜杠。

关于java - 如何使用 JFileChooser 添加双反斜杠而不是单个反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770253/

相关文章:

eclipse - Eclipse 中的自动完成错误

python - 安装错误认为 pythonpath 是空的

macos - 如何在 OS X 上更改 RPATH

java - 在类之间传递值以及更新回收器 View 时如何修复 "System services not available to Activities before onCreate"?

Java8:在 Collectors.toMap(..) 中使用 Function::identity 会产生参数不匹配错误

java - 如何在 map v2 中显示标记并在另一个类中调用坐标?

linux - Mac (UNIX) 系统上的 PATH 是什么?

java - 将列表存储在表列中

java - Spring集成异步通信同步响应

java - 如何将SVN分支合并到主干?