std:fs リファレンス
@import 'std:fs' で取得するファイルシステムモジュール。ファイルの読み書き・ディレクトリ操作・存在確認などの非同期 I/O を提供する。
exists
exists(path)
exists: { String | Future(Result(Bool)) }
path の存在を確かめる (不在は Ok(false))。
>>> print fs.exists("README.md")!
mkdir
mkdir(path)
mkdir: { String | Future(Result(Unit)) }
path を親ごと再帰作成する (冪等)。
>>> fs.mkdir("build/tmp")!
open
open(path)
open: { String | Future(Result(File)) }
読み取り専用でファイルを開き File ハンドルを得る (不在は Err)。
>>> f := fs.open("notes.txt")! >>> print f.size()!
open_rw
open_rw(path)
open_rw: { String | Future(Result(File)) }
読み書きでファイルを開き File ハンドルを得る (不在なら作成)。
>>> f := fs.open_rw("log.txt")! >>> f.close()!
read
read(path)
read: { String | Future(Result(String)) }
path のファイルを UTF-8 テキストとして読む。
>>> text := fs.read("notes.txt")! >>> print text
read_bytes
read_bytes(path)
read_bytes: { String | Future(Result(Bytes)) }
path のファイルを Bytes として読む (デコードなし)。
>>> data := fs.read_bytes("image.png")! >>> print data.length!
readdir
readdir(path)
readdir: { String | Future(Result(List)) }
path 直下のエントリ ({name, is_dir} の List) を読む。
>>> entries := fs.readdir(".")! >>> print entries
remove
remove(path)
remove: { String | Future(Result(Unit)) }
path (ファイル or 空ディレクトリ) を 1 つ削除する。
>>> fs.remove("build/tmp")!
rename
rename(old, new)
rename: { String, String | Future(Result(Unit)) }
old を new へ改名・移動する。
>>> fs.rename("draft.txt", "final.txt")!
stat
stat(path)
stat: { String | Future(Result) }
path のメタ情報 ({size, mtime, is_dir}) を読む。
>>> info := fs.stat("README.md")! >>> print info
walk
walk(path)
walk: { String | Future(Result(List)) }
path 配下の通常ファイルのパスを再帰的に集める (パス昇順)。ディレクトリ自身は
含めない。path がファイルなら [path] を返す。
>>> files := fs.walk("docs")! >>> print files
write
write(path, content)
write: { String, String | Future(Result(Unit)) }
path に content を UTF-8 テキストとして書く (上書き)。
>>> fs.write("greeting.txt", "hello")!
write_bytes
write_bytes(path, content)
write_bytes: { String, Bytes | Future(Result(Unit)) }
path に Bytes content をそのまま書く (上書き)。
>>> data := fs.read_bytes("a.bin")! >>> fs.write_bytes("b.bin", data)!
File メソッド
close
f.close() close: { Future(Result(Unit)) }
閉じて封印する。以降のメソッド呼び出しは object.Error。
>>> f := fs.open("data.bin")! >>> f.close()!
read_at
f.read_at(offset, n) read_at: { Int, Int | Future(Result(Bytes)) }
オフセットから最大 n bytes 読む。EOF 越えは短い Bytes。
>>> f := fs.open("data.bin")! >>> chunk := f.read_at(0, 16)! >>> print chunk
size
f.size() size: { Future(Result(Int)) }
現在のファイルサイズ (bytes)。
>>> f := fs.open("data.bin")! >>> print f.size()!
sync
f.sync() sync: { Future(Result(Unit)) }
OS バッファをディスクへ確定する (fsync)。
>>> f := fs.open_rw("log.txt")! >>> f.sync()!
truncate
f.truncate(n) truncate: { Int | Future(Result(Unit)) }
サイズを n bytes に切り詰め / 拡張する。
>>> f := fs.open_rw("log.txt")! >>> f.truncate(0)!
write_at
f.write_at(offset, bytes) write_at: { Int, Bytes | Future(Result(Unit)) }
オフセットに bytes を全量書く。末尾を越える位置はファイルを拡張する。
>>> f := fs.open_rw("data.bin")! >>> data := fs.read_bytes("src.bin")! >>> f.write_at(0, data)!