为什么不建议将硬编码的绝对路径名传递给 File 对象构造函数 File(String)

Why it is not suggested to pass hardcoded absolute path name to File object constructor File(String)

我正在使用 File(String pathName) 在 Java 中创建文件对象,其中 pathName 是文件的绝对路径。 虽然从功能的角度来看这工作得很好,但它经常以静态分析缺陷告终。 是否有任何具体原因建议在 File(String pathName) 上使用构造函数 File(File parent, String child)

根据一般经验,硬编码绝对路径会降低程序的灵活性。考虑一个位于 /usr/share/myapp/myapp.conf 的配置文件——如果最终用户想要将您的应用程序安装在 /usr/share 以外的其他位置怎么办?使用这样的绝对路径会破坏应用程序。

和往常一样,没有任何一般性陈述在 100% 的时间里都是正确的。如果将此文件放在任何其他位置完全没有意义,只需 waive/suppress 静态分析工具中的警告。

在任何应用程序中如果我们使用绝对路径 像 D:\

如果用户没有D:盘,那么应用程序将无法创建文件夹。所以我们不应该使用绝对路径。 以上只是一个例子,便于理解。