如果我尝试在 Linux 中使用包含空格的路径,我显然会得到 FileNotFoundException。但是,如果我尝试在路径中添加双引号/单引号作为解决方法,我会遇到同样的异常。
我试图检查原因,我发现使用引号时生成的绝对路径变为:user.home系统属性+指定路径。
例如:
如果我使用这条路径:
/home/db2inst1/Desktop/testing - Development Environmet/64_dev/testing/logs
这是我尝试使用引号时得到的绝对路径:
/home/db2inst1/"/home/db2inst1/Desktop/testing - Development Environmet/64_dev/testing/logs"
我还尝试用“\”替换空格而不是添加引号,但它不起作用。
我尝试了很多 API,并且每次都会发生这种情况,使此代码仅用于测试:
System.out.println("- regular path: ");
System.out.println(new File(path).getPath());
System.out.println(new File(path).getAbsolutePath());
System.out.println("- quoted path: ");
System.out.println(new File(quotedPath).getPath());
System.out.println(new File(quotedPath).getAbsolutePath());
这是输出:
- regular path:
/home/db2inst1/Desktop/testing - Development Environmet/64_dev/testing/logs/testing.log
/home/db2inst1/Desktop/testing - Development Environmet/64_dev/testing/logs/testing.log
- absolute path:
"/home/db2inst1/Desktop/testing - Development Environmet/64_dev/testing/logs/testing.log"
/home/db2inst1/"/home/db2inst1/Desktop/testing - Development Environmet/64_dev/testing/logs/testing.log"
有谁知道为什么会发生这种情况以及如何使其工作?