Mal*_*off 11 java scala file relative-path path-separator
我正在Windows上开发Scala应用程序,我需要将文件的路径插入到HTML模板中.我使用Java io并nio使用文件和路径.
/* The paths actually come from the environment. */
val includesPath = Paths.get("foo\\inc")
val destinationPath = Paths.get("bar\\dest")
/* relativeIncludesPath.toString == "..\\foo\\inc", as expected */
val relativeIncludesPath = destinationPath.relativize(includesPath)
Run Code Online (Sandbox Code Playgroud)
问题是输出relativeIncludesPath.toString包含反斜杠\作为分隔符 - 因为应用程序在Windows上运行 - 但由于路径要插入到HTML模板中,因此它必须包含正斜杠/.
由于我file/path.toStringUsingSeparator('/')在文档中找不到任何类似的东西,我现在正在帮助自己relativeIncludesPath.toString.replace('\\', '/'),我觉得这很有吸引力.
问题:有没有比使用替换更好的方法?
我也尝试与Java的URI,但它relativize是不完整的.
小智 5
Path 接口的 Windows 实现在内部将路径存储为字符串(至少在OpenJDK 实现中),并在调用toString()时简单地返回该表示。这意味着不涉及任何计算,也没有机会“配置”任何路径分隔符。
出于这个原因,我得出结论,您的解决方案是目前解决您问题的最佳选择。