我正在创建一个程序来搜索目录路径。我已经使用 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/