I have a filePath which I am trying to extract from a String. The string looks like:
val myPath: String = "InitialIndexValue/this/is/some/kind/of/path"
val firstIndex = myPath.indexOd('/')
val extractedPath = myPath.substring(firstIndex)
//I am creating a Uri path
val uriPath = Uri.Path./(extractedPath)
This is returning / in place of all '/'. The uri path is returning /this/is/some/kind/of/path. The imports are:
import akka.http.scaladsl.model.Uri
import java.nio.file.Path
My questions are: Why '/' is relaced by "/" by Uri.Path? Is there any other way to handle this? TIA
CodePudding user response:
Method /
on Uri.Path is intended to concatenate path segments together into one path. The argument to /
is a segment (e.g. "this" or "is" or "some"), not a whole path. When the segment contains special characters, they are URL encoded, e.g. character '/'
becomes "/"
and space would be " "
.
What you probably need to use is the apply
method of Uri.Path
which parses the given string as a whole path:
val uriPath = Uri.Path(extractedPath)