如果我尝试使用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"
有谁知道为什么发生这种情况以及如何使其起作用?