0

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

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

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

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

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

为什么是这样?

4

2 回答 2

1

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

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

根据您的输出,在您进入后,您将返回build1 次并期望在那里(与 处于同一级别)。确保该目录存在。..appwebbuildC:\dev\app\web\main

您可以使用exists()检查目录是否dir存在,如果不存在则使用mkdirs()

示例代码:

File parent = new File(dir);
if(! parent.exists()) {
    parents.mkdirs();
}
File nFile = new File(parent, "new.txt");

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

于 2013-05-06T18:21:49.210 回答
0

为什么不使用 Env-Varable “user.dir”?

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

System.getProperty(user.dir)+File.separator+"main"+File.separator+[and so on]
于 2013-05-06T17:12:54.827 回答