【发布时间】:2012-09-21 11:27:11
【问题描述】:
我正在使用文件输入流来输入文件
String filename="D:\\abc.txt";
File file = new File(filename);
到目前为止它工作正常。现在我想使用JFileChooser 输入文件名,然后做同样的事情。但是JFileChooser 返回一个类似D:\abc.txt 的字符串。我的代码如下
public static String fileChose()
{
JFileChooser fc= new JFileChooser();
int ret = fc.showOpenDialog(null);
if (ret== JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
String filename= file.getAbsolutePath();
return filename;
}
else
return null;
}
问题在于需要用\\ 分隔文件名而不是\。我不能以这样的方式直接从 JFileChooser 输入文件名,以便直接将其用作
File file = new File(Classname.fileChose());
【问题讨论】:
-
你声明的字符串“D:\\abc.txt”和方法返回的“D:\abc.txt”字符串是同一个字符串,因为代码中的
` is an escape character so\`实际上是``。话虽如此,我很难辨别你的问题到底是什么。 -
我知道这是一个转义字符。但是 File 中的参数需要使用 \\ 格式而不是 \。所以我想知道是否可以直接访问该格式的文件路径?
-
我同意 Vulcan,但更重要的是,您为什么不更改方法以返回
File本身而不是文件名?比如File file = fc.getSelectedFile(); return file;你反正就是把它做成一个文件 -
@prajeeshkumar:好的.. 我认为您提供了更好的解决方案。谢谢你..
-
@CSSS 文件中的参数根本不需要 需要“\\ 格式”。在 Windows 中,\ 是文件分隔符,因此您只需要一个,而不是两个。在字符串声明端使用 \\ 是必要的,因为“\\”实际上不是两个反斜杠,它被编译为单个反斜杠。
标签: java swing relative-path jfilechooser absolute-path