Sto sviluppando un'applicazione Scala su Windows e ho bisogno di inserire un percorso in un file in un modello HTML. Io uso Java io
e nio
per lavorare con file e percorsi.File.toString o Path.toString di Java con un separatore di percorso specifico
/* 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)
Il problema è che l'uscita del relativeIncludesPath.toString
contiene barre rovesciate \
come separatori - perché l'applicazione funziona su Windows - ma dal momento che il percorso deve essere inserito in un modello HTML, deve contenere le barre /
invece.
Poiché non sono riuscito a trovare nulla come file/path.toStringUsingSeparator('/')
nella documentazione, attualmente mi sto aiutando con relativeIncludesPath.toString.replace('\\', '/')
, che trovo piuttosto poco attraente.
Domanda: Non c'è davvero un modo migliore di utilizzare la sostituzione?
Ho anche sperimentato con Java URI
, ma è relativize
è incomplete.
Forse mi manca qualcosa. Perché non puoi relativizzare il percorso e quindi usare 'toURI()' invece di usare 'toString()'? – Gene
L'ho provato, ma poi ottengo un URI assoluto che assomiglia a questo: '' file:/C:/root/dir/foo/inc/''. –
Grazie per aver menzionato "URI".Non mi rendevo conto che avrebbe potuto "risolversi", e si scopre che è perfetto per me. –