Java 跨平台文件路径构建与表示

Java 跨平台文件路径构建与表示,java,cross-platform,filepath,Java,Cross Platform,Filepath,我正在进行一个项目的重构阶段,我想对如何构建和表示文件系统路径进行一些改进。在Java代码中表示相对路径以确保Ubuntu、OSX和Windows7上的兼容性时,应该考虑哪些事项 当前,要获取引用“MyProject/foo/bar.f”的文件实例,我需要以下代码: File bar=新文件(ProjectDirectory+“/”+FooResourceDirectory+“/”+barName) 出于几个原因,这似乎是错误的,有哪些最佳做法?首先,您应该使用File.separator Fi

我正在进行一个项目的重构阶段,我想对如何构建和表示文件系统路径进行一些改进。在Java代码中表示相对路径以确保Ubuntu、OSX和Windows7上的兼容性时,应该考虑哪些事项

当前,要获取引用“MyProject/foo/bar.f”的文件实例,我需要以下代码:

File bar=新文件(ProjectDirectory+“/”+FooResourceDirectory+“/”+barName)


出于几个原因,这似乎是错误的,有哪些最佳做法?

首先,您应该使用
File.separator

File.pathSeparator
而不是“/”

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

new File(parent, child)
您必须“嵌套”它们,但处理这一点很简单(例如,创建一个函数以获取从某个字符串中生成的路径…


请参见

注意:File.pathSeparator!=File.separator--File.pathSeparator(例如“/”)是分隔一个路径部分的字符,File.separator(例如“;”)是分隔不同路径的字符。我更喜欢通过以下方式使用正确的构造函数:
newfile(parent,child)
@Ralph我想你弄错了。“;”“/”File.pathSeparator是我最初寻找的部分内容,但我想我更喜欢使用内置构造函数和嵌套/拥有包装函数的想法。