std.path

パスの文字列を組み立て、分解する。読み書きするのは std.file。プログラムの中では区切りに / を書いておけばよく、join が環境に合わせる。

import std.path;
print(path.join("data", "fish.json"));   // data/fish.json
path.join path.join_all path.dir path.name path.stem path.ext path.normalize path.absolute path.is_absolute path.separator
path.join(a: string, b: string) → string

2つをつなぐ。区切り文字は環境に合わせる。

print(path.join("data", "fish.json"));   // data/fish.json
path.join_all(parts: list<string>) → string

まとめてつなぐ。

print(path.join_all(["a", "b", "c.txt"]));   // a/b/c.txt
path.dir(p: string) → string

親ディレクトリの部分。

print(path.dir("data/fish.json"));   // data
path.name(p: string) → string

ファイル名の部分(拡張子つき)。

print(path.name("data/fish.json"));   // fish.json
path.stem(p: string) → string

ファイル名の部分(拡張子なし)。

print(path.stem("data/fish.json"));   // fish
path.ext(p: string) → string

拡張子。. を含む。無ければ空文字。

print(path.ext("data/fish.json"));   // .json
print(path.ext("README") == "");     // true
path.normalize(p: string) → string

. や .. を畳んで、短い形にする。

print(path.normalize("a/b/../c"));   // a/c
path.absolute(p: string) → Result<string>

絶対パスにする。いまいる場所を使う。

if var full = path.absolute("fish.json") {
  print(path.is_absolute(full));   // true
}
path.is_absolute(p: string) → bool

絶対パスかどうか。

print(path.is_absolute("data/fish.json"));   // false
path.separator() → string

この環境の区切り文字("/" か "\")。

print(path.separator().len());   // 1