如何使用 JFileChooser 添加双反斜杠而不是单个反斜杠
How to add double back-slashes insead of a single back-slashes using JFileChooser
我正在创建一个程序来搜索目录路径。我已经使用 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
所以你可以看到路径是用一个反斜杠分隔的 e.g.C:\User\Folder\Database 但我希望它像这样用两个反斜杠分隔路径。 C:\Users\Database。我试过了,但出现错误:
txtPath.setText(fc.getSelectedFile().toString().replace("\", "\"));
我想这样使用它:
String sourceFileName = new String(txtPath.getSelectedText());
我对此还很陌生,所以任何关于我的代码的正确方向的指示都将不胜感激。
您不需要更换任何东西。只需要对String字面量中的斜杠进行转义即可,例如
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
但重申一下,在你的情况下你不需要双斜杠。
我正在创建一个程序来搜索目录路径。我已经使用 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
所以你可以看到路径是用一个反斜杠分隔的 e.g.C:\User\Folder\Database 但我希望它像这样用两个反斜杠分隔路径。 C:\Users\Database。我试过了,但出现错误:
txtPath.setText(fc.getSelectedFile().toString().replace("\", "\"));
我想这样使用它:
String sourceFileName = new String(txtPath.getSelectedText());
我对此还很陌生,所以任何关于我的代码的正确方向的指示都将不胜感激。
您不需要更换任何东西。只需要对String字面量中的斜杠进行转义即可,例如
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
但重申一下,在你的情况下你不需要双斜杠。