相对文件路径在Java中不起作用

时间:2013-05-06 17:10:13

标签: java file filenotfoundexception

阅读之后,可以使用“../”创建相对文件路径名称,我试了一下。

我有一个像这样的文件集的相对路径:

String dir = ".." + File.separator + "web" + File.separator + "main";

但是当我尝试使用下面的代码设置文件时,我得到一个FileNotFoundException

File nFile= new File(dir + File.separator + "new.txt");

为什么会这样?

2 个答案:

答案 0 :(得分:1)

  

nFile打印:“C:\ dev \ app \ build \ .. \ web \ main”

  

(“”)文件打印“C:\ dev \ app \ build”

根据您的输出,在您输入build后,您将..返回app一次,并期望web在那里(与build相同C:\dev\app\web\main)。确保目录dir存在。

您可以使用exists()检查目录File parent = new File(dir); if(! parent.exists()) { parents.mkdirs(); } File nFile = new File(parent, "new.txt"); 是否存在,如果不是使用mkdirs()创建

示例代码:

parent

请注意,{{1}}表示的文件可能已经存在,但不是目录,但是不可能将其用作父级。上面的代码不处理这种情况。

答案 1 :(得分:0)

为什么不采用Env-Variable“user.dir”?

它返回启动应用程序的路径。

System.getProperty(user.dir)+File.separator+"main"+File.separator+[and so on]