在Java中处理命令行文件路径参数的最佳方法

时间:2015-01-11 22:03:53

标签: java file command-line-arguments

我想以相对的形式将文件路径参数传递给我的应用程序,例如~/test.conf../test.conf,但我无法获得正确的完整文件路径,尽管我已经尝试使用旧java.io和新java.nio Files/Paths。是否有一般方法来获得没有大量代码的已解析文件路径?解决方案只适用于像OsX或Debian这样的unix环境。

更新

使用提供的参数,例如~/test.confgetAbsolutePath的情况下,它返回带有前缀当前文件夹的路径 - /Users/currentUser/Projects/Personal/TestProject/~/text.conf。 Canonical path返回相同的内容。

1 个答案:

答案 0 :(得分:0)

这里的硬位是处理POSIX主目录,确定你也处理~otheruser/dir/test.conf(如果你想正确地处理它)。

幸运的是,How to handle ~ in file paths涵盖了这一点。

TL; DR - 使用类似的东西:

path.replace("~/", System.getProperty("user.home") + "/");

一旦您完成了这项工作,并且正如其他人所评论的那样,您可以使用标准的java.io方法(包括getCanonicalPath())。