阅读之后,可以使用“../”创建相对文件路径名称,我试了一下。
我有一个像这样的文件集的相对路径:
String dir = ".." + File.separator + "web" + File.separator + "main";
但是当我尝试使用下面的代码设置文件时,我得到一个FileNotFoundException
。
File nFile= new File(dir + File.separator + "new.txt");
为什么会这样?
答案 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]