Join and inspect path-like text without touching the filesystem.

path-strings Path work often starts by combining stable text segments.

Path Strings

folder
PathStrings.kt
Replay: real traced execution (multi-file project)
fun main() {
    val folder = "notes"
    val file = "today.txt"
    val path = "$folder/$file"
    val parts = path.split("/")
    val extension = file.substringAfter(".")

    println("path=$path")
    println("folder=${parts[0]}")
    println("extension=$extension")
}
fun main() {
    val folder = "logs"
    val file = "today.txt"
    val path = "$folder/$file"
    val parts = path.split("/")
    val extension = file.substringAfter(".")

    println("path=$path")
    println("folder=${parts[0]}")
    println("extension=$extension")
}
fun main() {
    val folder = "data"
    val file = "today.txt"
    val path = "$folder/$file"
    val parts = path.split("/")
    val extension = file.substringAfter(".")

    println("path=$path")
    println("folder=${parts[0]}")
    println("extension=$extension")
}
  1. folder ← notes, file ← today.txt, path ← notes/today.txt, parts ← [notes, today.txt]

    1fun main() {2    val folder→ notes = "notes" //@folder="logs", "data"3    val file→ today.txt = "today.txt"4    val path→ notes/today.txt = "$foldernotes/$filetoday.txt"5    val parts→ [notes, today.txt] = pathnotes/today.txt.split("/")6    val extension→ txt = filetoday.txt.substringAfter(".")78    println("path=$pathnotes/today.txt")9    println("folder=${parts[0]notes}")10    println("extension=$extensiontxt")11}
    outputpath=notes/today.txt
    folder=notes
    extension=txt
  1. folder ← logs, file ← today.txt, path ← logs/today.txt, parts ← [logs, today.txt]

    1fun main() {2    val folder→ logs = "logs"3    val file→ today.txt = "today.txt"4    val path→ logs/today.txt = "$folderlogs/$filetoday.txt"5    val parts→ [logs, today.txt] = pathlogs/today.txt.split("/")6    val extension→ txt = filetoday.txt.substringAfter(".")78    println("path=$pathlogs/today.txt")9    println("folder=${parts[0]logs}")10    println("extension=$extensiontxt")11}
    outputpath=logs/today.txt
    folder=logs
    extension=txt
  1. folder ← data, file ← today.txt, path ← data/today.txt, parts ← [data, today.txt]

    1fun main() {2    val folder→ data = "data"3    val file→ today.txt = "today.txt"4    val path→ data/today.txt = "$folderdata/$filetoday.txt"5    val parts→ [data, today.txt] = pathdata/today.txt.split("/")6    val extension→ txt = filetoday.txt.substringAfter(".")78    println("path=$pathdata/today.txt")9    println("folder=${parts[0]data}")10    println("extension=$extensiontxt")11}
    outputpath=data/today.txt
    folder=data
    extension=txt