为什么Java找不到目录?

问题描述 投票:0回答:1

我有以下代码:

File dir = Paths.get(new URI(url)).toFile();
System.out.println("Path: " + dir.getAbsolutePath());
if (!dir.exists())
{
// make new directory
}

打印出来的路径是“\c\data est”。 这个目录存在于我的计算机上,但编译器总是尝试创建一个新目录。

java file directory
1个回答
0
投票

您的 URI 错误。

方案后面必须有一个或三个斜杠。 (方案是

file:
部分。)

方案后面的两个斜杠意味着非常不同的东西。两个斜杠在 URI 中引入了authority。权限通常是主机名,前面可以选择用户和密码,后面也可以选择端口号。

显然,权威对于

file:
URI 来说是没有意义的。因此,在这样的 URI 中,两个斜杠总是不正确的。

如果该方案后面只跟一个斜杠,则意味着根本不存在权限,并且该方案后面紧接着是一个 URI 路径,这就是您想要的。 (URI 路径始终以斜线开头。)

如果方案后面跟着三个斜杠,则表示没有信息的权限:没有用户,没有密码,没有主机名,没有端口。对于

file:
URI 来说这是完全可以接受的,尽管这是不必要的。第三个斜杠是空权限后面的 URI 路径的开头;它不是当局本身的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.