オフィスアワーがそろそろ始まるよ!()

fs

ファイルシステムにアクセスするためのモジュールです。linux, macosx, ios, breebsd, netbsd, windowsで動作します。

定数

  • MAX_PATH_BYTES: パスとして利用できるバイト数の上限です。
  • read: FileのInStreamインタフェースです。
  • write: FileのOutStreamインタフェースです。

FILE構造体は、io.InStream(File.ReadError)io.OutStream(File.ReadError)とを実装しているため、io.read(File.ReadError)io.write(File.ReadError)とを利用することができます。

read / writeで利用できるメソッドは、9章 ioを参照して下さい。

構造体

Dir

ディレクトリを操作するための構造体です。

  • open(allocator: heap.Allocator, dir_path: []const u8) OpenError!Dir: dir_pathのディレクトリを開き、新しくDirのインスタンスを作成します。
  • close() void: ディレクトリを閉じます。
  • next(self: *Dir) !?Entry: ディレクトリから次のエントリを取得します。
  • openRead(self: Dir, file_path: []const u8) os.OpenError!File: 読み込み専用でディレクトリを開きます。

Entry構造体は、次のように名前と種別を持つ構造体です。

    pub const Entry = struct {
        name: []const u8,
        kind: Kind,

        pub const Kind = enum {
            BlockDevice,
            CharacterDevice,
            Directory,
            NamedPipe,
            SymLink,
            File,
            UnixDomainSocket,
            Whiteout,
            Unknown,
        };
    };

File

ファイルを操作するための構造体です。

  • openRead(path: []const u8) OpenError!File: 読み込みモードでpathのファイルを開きます。
  • openWrite(path: []const u8) OpenError!File: 書き込みモードでpathのファイルを開きます。
  • openHandle(handle: os.fd_t) File: ファイルディスクリプタからファイルを開きます。
  • close(self: File) void: ファイルをクローズします。
  • access(path: []const u8) !void: pathが存在するかどうかテストします。
  • seekBy(self: File, offset: i64) SeekError!void: ファイルオフセットを現在のオフセット位置からoffset分移動します。
  • seekFromEnd(self: File, offset: i64) SeekError!void: ファイルオフセットをファイルの終了位置からoffset分移動します。
  • seekTo(self: File, offset: u64) SeekError!void: ファイルオフセットをファイルの先頭からoffset分移動します。
  • read(self: File, buffer: []u8) ReadError![]u8: ファイルからデータをbufferに読み込みます。
  • write(self: File, bytes: []const u8) WriteError!void: ファイルにbytesのデータを書き込みます。

ファイルシステム

  • copyFile(source_path: []const u8, dest_path: []const u8) !void: source_pathのファイルをdest_pathにコピーします。

  • makeDir(dir_path: []const u8) !void:

  • makePath(allocator: heap.Allocator, full_path: []const u8) !void: 再帰的にディレクトリを作成します。

  • deleteDir(dir_path: []const u8) !void: ディレクトリを削除します。

  • walkPath(allocator: heap.Allocator, dir_path: []const u8) !Walker: dir_pathからディレクトリを順番に辿るWalkerを作成します。

  • readLink(pathname: []const u8, buffer: *[os.PATH_MAX]u8) ![]u8: シンボリックリンクのパスを取得します。

  • selfExePath(out_buffer: *[MAX_PATH_BYTES]u8) SelfExePathError![]u8: 現在実行しているバイナリのパスを取得します。

  • selfExeDirPath(out_buffer: *[MAX_PATH_BYTES]u8) SelfExePathError![]const u8: 現在実行しているバイナリが置かれているディレクトリを取得します。

標準入出力

  • getStdIn() GetStdIoError!File: 標準入力ファイルを取得します。
  • getStdOut() GetStdIoError!File: 標準出力ファイルを取得します。
  • getStdErr() GetStdIoError!File: 標準エラーファイルを取得します。

ファイル読み書き

  • readFileAlloc(allocator: heap.Allocator, file_path: []const u8) ![]u8: allocatorで確保したメモリに、file_pathのファイルを読み込んだ結果を返します。
  • readLine(buf: *std.container.Buffer) ![]u8: bufから改行で区切られた文字列を読み込みます。
  • readLineSlice(slice: []u8) ![]u8: sliceから改行で区切られた文字列を読み込みます。
  • writeFile(path: []const u8, data: []const u8) !void: pathのファイルを開き、dataを書き込みます。

パス

OSのファイルシステムのパスを操作するための定数と関数です。

定数

  • const sep_windows = '\\';
  • const sep_posix = '/';
  • const sep = if (windows.is_the_target) sep_windows else sep_posix;

関数

  • join(allocator: heap.Allocator, paths: []const []const u8) ![]u8: pathsに格納された複数のパスを、ターゲットプラットフォームのセパレータを使って連結します。
  • isAbsolute(path: []const u8) bool: pathが絶対パスであればtrueを、そうでなければfalseを返します。
  • basename(path: []const u8) []const u8: pathからディレクトリパスを取り除いたファイル名を取得します。

☰ 人の生きた証は永遠に残るよう ☰
Copyright © 2018-2019 connectFree Corporation. All rights reserved.
Zen, the Zen three-circles logo and The Zen Programming Language are trademarks of connectFree corporation in Japan and other countries.