ファイルシステムのレシピ

テキスト・バイナリファイルの読み書き、ディレクトリ操作、パスの取得と結合、ファイルの監視、巨大ファイルの分割読み込みなど。fs プラグインの権限設定(スコープ)の書き方も各レシピで扱います。

全 22 件 / 対象: Tauri 2.x

  1. 1 テキストファイルを読み込む fs プラグインの readTextFile()(権限は fs:default に含まれる)で文字列を読む。Shift_JIS を読む encoding、BOM と改行コードの扱い、初回起動でファイルが無いときの書き方も示す。 更新日: 2026-09-12
  2. 2 テキストファイルに書き込む fs プラグインの writeTextFile()(権限 fs:allow-write-text-file)で文字列を保存する。既定で上書きになる点、初回に無いフォルダーの作り方、BOM・改行コード、壊れにくい保存の手順も示す。 更新日: 2026-09-12
  3. 3 画像などのバイナリファイルを読み込む readFile()(権限 fs:allow-read-file)で画像や PDF を Uint8Array として読み、Blob URL で表示する。Rust から ArrayBuffer で返す方法と asset プロトコルも示す。 更新日: 2026-09-12
  4. 4 バイナリデータをファイルに保存する writeFile()(権限 fs:allow-write-file)で Uint8Array を保存する。Canvas や Blob の変換、親フォルダーの作成、上書きを防ぐ createNew、Rust へバイト列で送る方法も示す。 更新日: 2026-09-12
  5. 5 ファイルの末尾にデータを追記する writeTextFile() に append: true を渡して末尾に足す(権限は上書きと同じ fs:allow-write-text-file)。改行の付け方、BOM と見出しを最初の 1 回だけ書く方法、順番の守り方も示す。 更新日: 2026-09-12
  6. 6 新しいディレクトリ(フォルダ)を作成する fs プラグインの mkdir()(fs:default に含まれる)と Rust の create_dir_all() でフォルダーを作る。初回はアプリ用フォルダーも無いことがある点、recursive の使い分け、同名の避け方も示す。 更新日: 2026-09-12
  7. 7 ファイルやディレクトリを削除する fs プラグインの remove()(権限 fs:allow-remove)でファイルとフォルダーを削除する。recursive の使い分け、$APPDATA などのスコープの絞り方、Rust で安全に消す方法も示す。 更新日: 2026-09-12
  8. 8 ファイル名を変更する・別の場所へ移動する fs プラグインの rename()(権限 fs:allow-rename)で名前の変更と移動を行う。移動元と移動先の両方に要るスコープ、上書きの防ぎ方、別ドライブへ移すときの代わりの手順も示す。 更新日: 2026-09-12
  9. 9 ファイルをコピー・複製する fs プラグインの copyFile()(権限 fs:allow-copy-file)でファイルを複製する。同梱の既定ファイルを初回だけ展開する手順、上書きの防ぎ方、フォルダーごとのコピーも示す。 更新日: 2026-09-12
  10. 10 ファイルやフォルダが存在するか確認する fs プラグインの exists()(fs:default に含まれる)でパスの有無を確かめる。スコープ外では false でなく例外になる点、stat() での種類の見分け方、確かめずに済む createNew も示す。 更新日: 2026-09-12
  11. 11 フォルダ内のファイル一覧を取得する fs プラグインの readDir()(fs:default に含まれる)でフォルダー直下の名前と種類を取る。並び順が決まっていない点、空・無い・スコープ外の見分け方、サイズも返す Rust 版も示す。 更新日: 2026-09-12
  12. 12 サブフォルダも含めて再帰的に一覧取得する readDir() を繰り返してサブフォルダーの中までたどる。スコープに ** が要る点、隠しフォルダーとリンクの扱い、大量のファイルで IPC を抑える並列化と Rust での走査も示す。 更新日: 2026-09-12
  13. 13 ファイルのメタデータ(サイズ・作成日時・更新日時)を取得する fs プラグインの stat()(権限 fs:allow-stat)でサイズや更新日時を読む。日時が null になる場合、フォルダーの合計サイズ、ほかのアプリによる変更の見分け方、Rust 版も示す。 更新日: 2026-09-12
  14. 14 ファイルのパーミッション(権限)を変更する OS がファイルに持つアクセス権を変える。fs プラグインに chmod は無く、作成時の mode と Rust の set_permissions() を使う。Windows の読み取り専用と Unix の rwx の違いも示す。 更新日: 2026-09-12
  15. 15 アプリ専用のデータ保存フォルダパスを取得する appDataDir() と Rust の app_data_dir() でアプリ専用フォルダーを得る。identifier で決まる名前、OS ごとの場所、appConfig・appCache などとの使い分けを表で示す。 更新日: 2026-09-12
  16. 16 アプリの設定保存フォルダパスを取得する appConfigDir() と Rust の app_config_dir() で設定ファイルの場所を得て読み書きする。Windows と macOS ではデータ用と同じフォルダーになる点、壊れた設定の扱いも示す。 更新日: 2026-09-12
  17. 17 一時ファイル用フォルダパスを取得する tempDir() と Rust の temp_dir() でシステムの一時フォルダーを得る。全アプリ共用なので、専用のサブフォルダーに重ならない名前で作る方法、$TEMP の権限の絞り方、古いファイルの掃除を示す。 更新日: 2026-09-12
  18. 18 ユーザーのホームディレクトリパスを取得する homeDir() と Rust の home_dir() でホームディレクトリのパスを得る。~ が展開されない点、ドキュメントなどは documentDir() を使う理由、$HOME の権限を広げすぎない書き方も示す。 更新日: 2026-09-12
  19. 19 パスを操作する(結合・正規化・絶対パス化・拡張子の取得) path API の join・normalize・resolve・extname と Rust の std::path・PathResolver でパスを加工する。拡張子なしで例外になる点や、フォルダー外に出ない確かめ方も示す。 更新日: 2026-09-12
  20. 20 ファイルの変更をリアルタイムで監視する fs プラグインの watch() / watchImmediate()(Cargo の watch 機能と fs:allow-watch が必要)や Rust の notify でフォルダーの変化を受け取る。止め方と対象の選び方も示す。 更新日: 2026-09-12
  21. 21 ファイル変更イベントを受け取って処理する watch() や notify から届く変更イベントを create / modify / rename / remove に見分け、パスごとにまとめて間引いてから処理する。取りこぼし・一時ファイル・自分の書き込みへの備えも示す。 更新日: 2026-09-12
  22. 22 巨大なファイルを少しずつ読み込む fs プラグインの open() と read() で巨大なファイルを一定量ずつ読み、進み具合の表示や中断をする。readTextFileLines() の落とし穴と、Rust から Channel でバイト列を送る方法も示す。 更新日: 2026-09-12