跨平台文件路径构建和表示

Tom*_*and 8 java cross-platform filepath

我正处于我正在进行的项目的重构阶段,并希望对我如何构建和表示文件系统路径进行一些改进.在Java代码中表示相对路径以确保Ubuntu,OSX和Windows 7的兼容性时,我应该考虑哪些事项.

目前要获取文件引用"MyProject/foo/bar.f"的实例,我将得到以下代码:

File bar = new File(ProjectDirectory + "/" + FooResourceDirectory + "/" + barName);

由于几个原因,这似乎是错误的,有哪些最佳实践?

小智 12

也许使用提供的构造函数来执行此类操作:

new File(parent, child)
Run Code Online (Sandbox Code Playgroud)

你必须"嵌套"它们,但处理这个问题是微不足道的(例如,创建一个函数来获取从某些东西中构建的路径string....)

请参见文件构造函数.


Ral*_*lph 9

首先,你应该使用 File.separator File.pathSeparator而不是"/".

  • 注意:File.pathSeparator!= File.separator - File.pathSeparator(例如"/")是用于分隔一个路径的部分的字符,File.separator(例如";")是用于分隔不同路径的字符 (3认同)