Java Can';使用..时找不到指定的路径。。在中间

Java Can';使用..时找不到指定的路径。。在中间,java,file,exception,io,filenotfoundexception,Java,File,Exception,Io,Filenotfoundexception,我正在尝试使用如下路径写入文件: D:\abcd\efgh\..\ijkl\file.txt 所以我有一个文件对象,它有这样一个路径,但是在行中 FileOutputStream fos = new FileOutputStream(f); 我明白了: java.io.FileNotFoundException: ..\ijkl\file.txt (The system cannot find the path specified) 有人知道这里出了什么问题吗?是否有可能以绝对路径解析路径

我正在尝试使用如下路径写入文件:

D:\abcd\efgh\..\ijkl\file.txt

所以我有一个文件对象,它有这样一个路径,但是在行中

FileOutputStream fos = new FileOutputStream(f);
我明白了:

java.io.FileNotFoundException: ..\ijkl\file.txt (The system cannot find the path specified)
有人知道这里出了什么问题吗?是否有可能以绝对路径解析路径

文件对象的初始化:

File f = new File(strImagePath);
strImagePath由不同的字符串构建,看起来与上面显示的路径完全相同


谢谢

根据您的代码,java尝试访问文件夹D:\abcd\ijkl\file.txt,因为您有位置
。\ijkl\file.txt
,但在您的系统中,该路径上没有任何文件。因此,您得到了错误。

编辑:请尝试使用
D:\\abcd\\efgh\\../efgh\\ijkl\\file.txt

显示整个代码,而不仅仅是随机行。我们看不到
f
中的内容,而这正是您的问题所在。您确定在
efgh
之间没有反斜杠“\”。
(父目录的快捷方式),即
D:\abcd\efgh\..\ijkl\file.txt
?f是一个包含路径“D:\abcd\efgh\..\ijkl\file.txt”的文件对象。我在调试时用日志条目检查了这一点。你错了。”f'是一个只包含“.\ijkl\File.txt”的文件对象,例外情况清楚地显示了这一点。当你执行这个程序时,你在哪个工作目录?没有“Java的工作目录”这样的东西。我问你执行程序时在哪个工作目录。换句话说,程序运行.file.txt时看到的系统属性“user.dir”的值确实存在于ijkl目录中。所以问题不是缺少文件。ijkl中是否存在file.txt?是的,程序应该删除已经存在的文件。文件在那里,路径正确。似乎java在解决路径中的“.”时遇到了问题。是的,这就是我上面提到的。当java在文件路径中获取
。/
时,它会将其作为向上一级目录的命令。你明白我的意思吗?如果不明白,请告诉我。我真的不明白你的意思。Java在D:\abcd\efgh中运行,我要删除的文件在D:\abcd\ijkl中,因此我认为必须使用“.”才能访问父目录。