🐱
Tauri 2.0でローカルファイルを読み込んでみる(plugin-fs)
下記、「ファイルを開く」ダイアログ(plugin-dialog)を利用してみる記事の続き的な内容になります。
折角、上記でローカルファイルのファイルパスを取得できたので、そのローカルファイルを読み込んでみたいと思います。
下記tauri-plugin-fs
を利用します。
プラグインの追加
フロントとRust側の両方に追加を行います。
> yarn add @tauri-apps/plugin-fs
> cd src-tauri
> cargo add tauri-plugin-fs
プラグインの登録
Tauriにプラグインとして登録を行います。
src-tauri/src/lib.rs
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_fs::init()) //★追加
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
パーミッションの追加
今回はファイルシステムプラグインのreadTextFile
を利用するので、そのパーミッションを追加します。
下記のようにfs:allow-read-text-file
を追加します。
※ここは利用するAPIによって変わってきます。
src-tauri/capabilities/default.json
{
"permissions": [
"core:default",
"shell:allow-open",
"dialog:allow-open",
"fs:allow-read-text-file",
]
}
フロント側の実装
あとはフロント側にローカルファイルを読み込む実装をするだけです。
「ファイルを開く」ダイアログで取得したファイルパスのローカルファイルを読み込んでみます。
import { open } from '@tauri-apps/plugin-dialog'
import { BaseDirectory, readTextFile } from '@tauri-apps/plugin-fs'
const selected = await open({
multiple: false,
filters: [
{
name: 'Text',
extensions: ['txt'],
},
{
name: 'All',
extensions: ['*'],
},
],
})
console.log(selected)
// ファイルの読み込み処理を追加
const text = await readTextFile(selected, { baseDir: BaseDirectory.AppConfig })
console.log(text)
これだけでローカルファイルが読み込めます!
フロント側のコーディングだけで選択したファイルを読み込めるので、簡単ですね。
Markdown Viewer開発中
このように Tauri 2.0 をお試ししつつ、せっかくなのでMarkdown Viewerを開発してみています。
ソースサンプルにでもなるかもなので、一応紹介しておきます(笑)
Discussion