在Java中,"Paths.get("").toAbsolutePath().toString()"和"System.getProperty("user.dir")"有什么区别?

3
我正在编写一段 Java 代码,用于将给定位置(目标位置)的目录(源目录)进行压缩。到此为止,我已经编写了代码并测试了测试用例。我对版本控制中定义目标路径和源路径的疑惑在于,为避免冲突而导致构建失败,我在参考的代码中看到路径被设置如下: 源路径 -
zipRequest.setSource(Paths.get("").toAbsolutePath().toString() + "/src/main/resources/zipSource/source.txt");

并且

目标路径 -

zipRequest.setDestination(System.getProperty("user.dir") + "/src/main/resources/zipDestination/destination.zip");

我的问题如下:

  1. 上述两种方法定义路径的区别是什么?
  2. 是否有最佳实践来使用上述方法? (具体针对源或目标?)
  3. 我能否将一种方法用于路径和目标?

提前感谢!

1个回答

2

Paths.get("").toAbsolutePath().toString()是当前工作目录,即您启动程序时所在的位置。它与System.getProperty("user.dir")完全相同,但我更喜欢第二个(它更短,更容易理解)。但是,由于它们是相同的,您可以使用任何一个(或两者)来确定源和目标。


那么在测试类中的每个测试用例中,可以使用 System.getProperty("user.dir")(或 Paths.get("").toAbsolutePath().toString())吗?我是对的吗? - Indi
1
不知道。可能取决于你的测试;如果它们依赖于与当前文件夹相关的东西,那么你可以将两者替换为“.”。 - Elliott Frisch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接