0
 FileDialog fc=new FileDialog (new Frame(),"Test File Dialog");
   fc.setVisible(true);
   String selectedFile=fc.getFile();
   File file = new File(selectedFile);
   String absolutepath = file.getAbsolutePath();

嗨,我正在尝试获取文本文件的完整文件路径。该文件位于我的 java 项目文件夹之外的不同文件夹中,但位于同一驱动器上。当我尝试使用上面的代码打开它时,我在 SelectedFile 中获得了正确的文件名,但 file.getAbsolutePath() 没有返回正确的文件位置。file.getAbsolutePath() 正在返回我的 java 项目的文件夹。

请帮助我为我在文件对话框中选择的任何文件获取正确的文件位置

4

2 回答 2

3

坚持 AWT 有什么特别的原因吗?

否则,我建议您改用JFileChooser对话框。以下是一些相关链接,可帮助您入门:

于 2011-06-14T13:00:56.797 回答
0

来自java.io.File的文档:

默认情况下,java.io 包中的类总是根据当前用户目录解析相对路径名。

您只是从对话框中检索文件的名称(相对路径) - 而不是完整路径(绝对路径)。当您在第 4 行创建文件对象时,它希望该文件存在于当前目录中。

请改用以下内容:

String selectedFile=fc.getFile();
String selectedDirectory=getDirectory();
File file = new File(selectedDirectory, selectedFile);
于 2011-06-14T14:36:12.857 回答