读完之后,是否可以使用“../”创建相对文件路径名,我试了一下。
我有一个这样的文件集的相对路径:
String dir = ".." + File.separator + "web" + File.separator + "main";
但是当我尝试使用下面的代码设置文件时,我得到一个FileNotFoundException
.
File nFile= new File(dir + File.separator + "new.txt");
为什么是这样?
读完之后,是否可以使用“../”创建相对文件路径名,我试了一下。
我有一个这样的文件集的相对路径:
String dir = ".." + File.separator + "web" + File.separator + "main";
但是当我尝试使用下面的代码设置文件时,我得到一个FileNotFoundException
.
File nFile= new File(dir + File.separator + "new.txt");
为什么是这样?
nFile 打印:“C:\dev\app\build\..\web\main”
和
("") 文件打印 "C:\dev\app\build"
根据您的输出,在您进入后,您将返回build
1 次并期望在那里(与 处于同一级别)。确保该目录存在。..
app
web
build
C:\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
可能已经存在但不是目录,在这种情况下,将无法将其用作父目录。上面的代码不处理这种情况。
为什么不使用 Env-Varable “user.dir”?
它返回您启动应用程序的路径。
System.getProperty(user.dir)+File.separator+"main"+File.separator+[and so on]