WindowsでScalaアプリケーションを開発しています。ファイルへのパスをHTMLテンプレートに挿入する必要があります。私は、Javaのio
とnio
を使ってファイルとパスを扱います。アプリケーションは、Windows上で実行されるため - - しかし、パスは、HTMLテンプレートに挿入されるようになるので、それは前進ではなく/
をスラッシュ含まれている必要があります特定のパス区切りを持つJavaのFile.toStringまたはPath.toString
/* 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)
問題はrelativeIncludesPath.toString
の出力は、バックスラッシュ区切りとして\
が含まれていることです。
ドキュメントでfile/path.toStringUsingSeparator('/')
のようなものが見つからなかったので、私は現在relativeIncludesPath.toString.replace('\\', '/')
で自分を助けていますが、それはむしろ魅力的ではありません。
質問:置き換えを使用するよりも良い方法はありませんか?
私もJavaのURI
で実験しましたが、relativize
はincompleteです。
多分私に何かが不足しています。どうしてあなたはパスを相対化できず、 'toString()'の代わりに 'toURI()'を使うことができませんか? – Gene
私はそれを試しましたが、次に絶対URIを得ました: '' file:/ C:/ root/dir/foo/inc/''。 –
「URI」に言及してくれてありがとう。私はそれが「解決する」ことができるとは気づきませんでした。それは私にとって完璧だということが判明しました。 –