文件系统
访问文件系统。
支持的平台
此插件至少需要 Rust 版本 1.77.2
平台 | 级别 | 备注 |
---|---|---|
Windows | 通过 MSI 或 NSIS 安装的程序在 | |
Linux | 默认情况下,对 | |
macOS | 默认情况下,对 | |
Android | | 默认情况下,访问受限到应用程序文件夹 |
iOS | | 默认情况下,访问受限到应用程序文件夹 |
设置
开始使用 fs 插件。
使用您项目的包管理器添加依赖项
npm run tauri add fs
yarn run tauri add fs
pnpm tauri add fs
deno task tauri add fs
bun tauri add fs
cargo tauri add fs
-
在
src-tauri
文件夹中运行以下命令,将插件添加到项目的依赖项Cargo.toml
cargo add tauri-plugin-fs -
修改
lib.rs
以初始化插件src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().plugin(tauri_plugin_fs::init()).run(tauri::generate_context!()).expect("error while running tauri application");} -
使用您首选的 JavaScript 包管理器安装 JavaScript Guest 绑定
npm install @tauri-apps/plugin-fsyarn add @tauri-apps/plugin-fspnpm add @tauri-apps/plugin-fsdeno add npm:@tauri-apps/plugin-fsbun add @tauri-apps/plugin-fs
配置
Android
当使用 audio、cache、documents、downloads、picture、public 或 video 目录时,您的应用程序必须具有访问外部存储的权限。
将以下权限添加到 manifest
标签中 gen/android/app/src/main/AndroidManifest.xml
文件
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
iOS
苹果要求应用程序开发者指定 API 使用的批准原因,以提高用户隐私。
您必须在 src-tauri/gen/apple
文件夹中创建一个名为 PrivacyInfo.xcprivacy
的文件,并包含所需的关键字 NSPrivacyAccessedAPICategoryFileTimestamp 和推荐理由 C617.1。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>C617.1</string> </array> </dict> </array> </dict></plist>
使用方法
fs 插件同时支持 JavaScript 和 Rust。
import { exists, BaseDirectory } from '@tauri-apps/plugin-fs';// when using `"withGlobalTauri": true`, you may use// const { exists, BaseDirectory } = window.__TAURI__.fs;
// Check if the `$APPDATA/avatar.png` file existsawait exists('avatar.png', { baseDir: BaseDirectory.AppData });
use tauri_plugin_fs::FsExt;
#[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_fs::init()) .setup(|app| { // allowed the given directory let scope = app.fs_scope(); scope.allow_directory("/path/to/directory", false); dbg!(scope.allowed());
Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application");}
安全
本模块防止路径遍历,不允许使用父目录访问器(即不允许使用如 “/usr/path/to/../file” 或 “../path/to/file” 的路径)。使用此 API 访问的路径必须是相对于某个 基础目录 或使用 路径 API 创建的。
更多信息请参见 @tauri-apps/plugin-fs - 安全。
路径
文件系统插件提供两种路径操作方式:基础目录 和 路径 API。
-
基础目录
每个 API 都有一个选项参数,允许你定义一个起作用的作为操作工作目录的 baseDir。
import { readFile } from '@tauri-apps/plugin-fs';const contents = await readFile('avatars/tauri.png', {baseDir: BaseDirectory.Home,});在上面的示例中,因为使用的是 Home 基础目录,所以读取了 ~/avatars/tauri.png 文件。
-
路径 API
你也可以使用路径 API 来执行路径操作。
import { readFile } from '@tauri-apps/plugin-fs';import * as path from '@tauri-apps/api/path';const home = await path.homeDir();const contents = await readFile(await path.join(home, 'avatars/tauri.png'));
文件
创建
创建一个文件并返回其句柄。如果文件已经存在,则将被截断。
import { create, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await create('foo/bar.txt', { baseDir: BaseDirectory.App });await file.write(new TextEncoder().encode('Hello world'));await file.close();
编写
该插件提供单独的 API 用于写入文本和二进制文件以提高性能。
-
文本文件
import { writeTextFile, BaseDirectory } from '@tauri-apps/plugin-fs';const contents = JSON.stringify({ notifications: true });await writeTextFile('config.json', contents, {baseDir: BaseDirectory.AppConfig,}); -
二进制文件
import { writeFile, BaseDirectory } from '@tauri-apps/plugin-fs';const contents = new Uint8Array(); // fill a byte arrayawait writeFile('config', contents, {baseDir: BaseDirectory.AppConfig,});
打开
打开文件并返回其句柄。使用此 API,你可以更详细地控制如何打开文件(只读模式、写模式、追加而不是覆盖、仅在不存在时创建等)。
-
只读
这是默认模式。
import { open, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await open('foo/bar.txt', {read: true,baseDir: BaseDirectory.App,});const buf = new Uint8Array();await file.read(buf);const textContents = new TextDecoder().decode(buf);await file.close(); -
只写
import { open, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await open('foo/bar.txt', {write: true,baseDir: BaseDirectory.App,});await file.write(new TextEncoder().encode('Hello world'));await file.close();默认情况下,任何
file.write()
调用都会截断文件。请参阅以下示例了解如何将追加到现有内容中。 -
追加
import { open, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await open('foo/bar.txt', {append: true,baseDir: BaseDirectory.App,});await file.write(new TextEncoder().encode('world'));await file.close();注意,将
{ append: true }
的效果与{ write: true, append: true }
相同。 -
截断
当设置
truncate
选项且文件已存在时,文件将截断到长度 0。import { open, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await open('foo/bar.txt', {write: true,truncate: true,baseDir: BaseDirectory.App,});await file.write(new TextEncoder().encode('world'));await file.close();此选项需要将
write
设置为true
。如果要使用多个
file.write()
调用来重写现有文件,可以使用此选项与append
选项。 -
创建
默认情况下,
open
API 只打开现有文件。如果要创建文件(如果不存在则打开),请将create
设置为true
。import { open, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await open('foo/bar.txt', {write: true,create: true,baseDir: BaseDirectory.App,});await file.write(new TextEncoder().encode('world'));await file.close();要创建文件,必须将
write
或append
也设置为true
。如果要失败如果文件已存在,请参阅
createNew
。 -
createNew
createNew
与create
的工作方式类似,但如果文件不存在,则操作失败。import { open, BaseDirectory } from '@tauri-apps/plugin-fs';const file = await open('foo/bar.txt', {write: true,createNew: true,baseDir: BaseDirectory.App,});await file.write(new TextEncoder().encode('world'));await file.close();要创建文件,必须将
write
也设置为true
。
读取
该插件提供针对读取文本和二进制文件分别的单独 API 以提高性能。
-
文本文件
import { readTextFile, BaseDirectory } from '@tauri-apps/plugin-fs';const configToml = await readTextFile('config.toml', {baseDir: BaseDirectory.AppConfig,});如果文件很大,你可以使用
readTextFileLines
API 来流式传输其行。import { readTextFileLines, BaseDirectory } from '@tauri-apps/plugin-fs';const lines = await readTextFileLines('app.logs', {baseDir: BaseDirectory.AppLog,});for await (const line of lines) {console.log(line);} -
二进制文件
import { readFile, BaseDirectory } from '@tauri-apps/plugin-fs';const icon = await readFile('icon.png', {baseDir: BaseDirectory.Resources,});
删除
调用 remove()
来删除文件。如果文件不存在,则返回一个错误。
import { remove, BaseDirectory } from '@tauri-apps/plugin-fs';await remove('user.db', { baseDir: BaseDirectory.AppLocalData });
复制
copyFile
函数接收源路径和目标路径。请注意,您必须单独为每个基本目录进行配置。
import { copyFile, BaseDirectory } from '@tauri-apps/plugin-fs';await copyFile('user.db', 'user.db.bk', { fromPathBaseDir: BaseDirectory.AppLocalData, toPathBaseDir: BaseDirectory.Temp,});
在上面的示例中, 使用 可以使用 在上面的示例中, 截断或扩展指定的文件以达到特定的文件长度(默认为0)。 要创建目录,调用 调用 如果目录不为空,必须将 使用 可以使用 要监视目录或文件的变化,请使用 watch watchImmediate 默认情况下,在目录上的监视操作不是递归的。要递归监视所有子目录的变化,请将 默认情况下,所有潜在的插件命令和作用域都受到阻止,无法访问。您必须修改 有关更多信息,请参阅 权限概述 以及使用插件权限的 逐步指南。 此权限集一系列描述了 此默认权限集默认启用了对应用程序特定目录(AppConfig、AppData、AppLocalData、AppCache、AppLog)的读取访问以及它们内部创建的所有文件和子目录。这些目录的位置取决于操作系统,以及应用程序运行的位置。 通常,这些目录需要在应用程序运行时手动创建,在访问该目录中的文件或文件夹之前才可能。 因此,也允许通过 此默认权限集默认防止访问 Tauri 应用程序的关键组件。在 Windows 上,拒绝了对 webview 数据文件夹的访问。 这允许对完整的应用程序文件夹、文件和子文件夹进行完全递归读取访问。 这允许对完整的应用程序文件夹、文件和子文件夹进行完全递归写入访问。 这允许对应用程序文件夹进行非递归读取访问。 这允许对应用程序文件夹进行非递归写入访问。 这允许对应用程序文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。 这允许对应用程序文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。 此作用域允许递归访问完整的应用程序文件夹,包括子目录和文件。 此作用域允许访问应用程序文件夹中的所有文件和顶级目录的内容列表。 此作用域允许列出应用程序目录中的所有文件和文件夹。 这允许对完整的应用程序缓存文件夹( 这允许对完整的应用程序缓存文件夹( 这允许对应用程序缓存文件夹( 这允许对应用程序缓存文件夹( 这允许对应用程序缓存文件夹( 这允许对应用程序缓存文件夹( 此作用域允许递归访问完整的应用程序缓存文件夹( 此作用域允许访问应用程序缓存文件夹( 此作用域允许列出应用程序缓存文件夹( 这允许对完整的应用程序配置文件夹( 这允许对完整的应用程序配置文件夹( 这允许对应用程序配置文件夹( 这允许对应用程序配置文件夹( 这允许对应用程序配置文件夹( 这允许对应用程序配置文件夹( 此作用域允许递归访问完整的应用程序配置文件夹( 此作用域允许访问应用程序配置文件夹( 此作用域允许列出应用程序配置文件夹( 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 这个作用域允许对完整的 这个作用域允许访问 这个作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 这个作用域允许对完整的 这个作用域允许访问 这个作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 这个作用域允许对完整的 这个作用域允许访问 这个作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许对完整 这允许对完整 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许对完整 这允许对完整 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许对完整 这允许对完整 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许完全递归读取访问整个 这允许完全递归写入访问整个 这允许非递归读取访问 这允许非递归写入访问 这允许完全递归读取访问 这允许非递归读取访问 此作用域允许递归访问整个 此作用域允许访问 此作用域允许列出 这允许完全递归读取访问整个 这允许完全递归写入访问整个 这允许非递归读取访问 这允许非递归写入访问 这允许完全递归读取访问 这允许非递归读取访问 此作用域允许递归访问整个 此作用域允许访问 此作用域允许列出 这允许完全递归读取访问整个 这允许完全递归写入访问整个 这允许非递归读取访问 这允许非递归写入访问 这允许完全递归读取访问 这允许非递归读取访问 此作用域允许递归访问整个 此作用域允许访问 此作用域允许列出 这允许对整个 这允许对整个 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问整个 此作用域允许访问 此作用域允许列出 这允许对整个 这允许对整个 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问整个 此作用域允许访问 此作用域允许列出 这允许对整个 这允许对整个 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问整个 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许对完整的 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许对完整的 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许对完整的 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许对完整的 这允许对完整的 这允许对 这允许对 这允许对 这允许对 此作用域允许递归访问完整的 此作用域允许访问 此作用域允许列出 这允许完全递归地读取 这允许完全递归地写入 这允许非递归地读取 这允许非递归地写入 这允许完全递归地读取 这允许非递归地读取 此作用域允许递归地访问完整的 此作用域允许访问 此作用域允许列出 这允许完全递归地读取完整的 这允许完全递归地写入完整的 这允许非递归地读取 这允许非递归地写入 这允许完全递归地读取 这允许非递归地读取 此作用域允许递归地访问完整的 此作用域允许访问 此作用域允许列出 启用copy_file命令,不配置预定义的作用域。 拒绝copy_file命令,不配置预定义的作用域。 启用create命令,不配置预定义的作用域。 拒绝create命令,不配置预定义的作用域。 启用exists命令,不配置预定义的作用域。 拒绝exists命令,不配置预定义的作用域。 启用fstat命令,不配置预定义的作用域。 拒绝fstat命令,不配置预定义的作用域。 启用ftruncate命令,不配置预定义的作用域。 拒绝ftruncate命令,不配置预定义的作用域。 启用lstat命令,不配置预定义的作用域。 拒绝lstat命令,不配置预定义的作用域。 启用mkdir命令,不配置预定义的作用域。 拒绝mkdir命令,不配置预定义的作用域。 启用open命令,不配置预定义的作用域。 拒绝open命令,不配置预定义的作用域。 启用读取命令,无需预先配置作用域。 拒绝读取命令,无需预先配置作用域。 启用read_dir命令,无需预先配置作用域。 拒绝read_dir命令,无需预先配置作用域。 启用read_file命令,无需预先配置作用域。 拒绝read_file命令,无需预先配置作用域。 启用read_text_file命令,无需预先配置作用域。 拒绝read_text_file命令,无需预先配置作用域。 启用read_text_file_lines命令,无需预先配置作用域。 拒绝read_text_file_lines命令,无需预先配置作用域。 启用read_text_file_lines_next命令,无需预先配置作用域。 拒绝read_text_file_lines_next命令,无需预先配置作用域。 启用remove命令,无需预先配置作用域。 拒绝remove命令,无需预先配置作用域。 启用rename命令,无需预先配置作用域。 拒绝rename命令,无需预先配置作用域。 启用seek命令,无需预先配置作用域。 拒绝seek命令,无需预先配置作用域。 启用size命令,无需预先配置作用域。 拒绝size命令,无需预先配置作用域。 启用stat命令,无需预先配置作用域。 拒绝stat命令,无需预先配置作用域。 启用truncate命令,无需预先配置作用域。 拒绝truncate命令,无需预先配置作用域。 启用unwatch命令,无需预先配置作用域。 拒绝unwatch命令,无需预先配置作用域。 启用watch命令,无需预先配置作用域。 拒绝watch命令,无需预先配置作用域。 启用write命令,无需预先配置作用域。 拒绝write命令,无需预先配置作用域。 启用write_file命令,无需预先配置作用域。 拒绝write_file命令,无需预先配置作用域。 启用write_text_file命令,无需预先配置作用域。 拒绝write_text_file命令,无需预先配置作用域。 此权限允许创建特定于应用目录。 默认拒绝访问危险的与Tauri相关的文件和文件夹。 这拒绝了对Linux上 这拒绝了对Windows上 这启用所有读取相关的命令,无需预先配置的访问路径。 此权限允许应用程序特定基本目录的递归读取功能。 这启用了对目录读取和文件元数据相关命令的访问,而不需要任何预配置的路径。 这启用了对文件读取相关命令的访问,而不需要任何预先配置的可访问路径。 这启用了对所有索引或元数据相关命令的访问,而不需要预先配置的可访问路径。 这是一个空的权限,您可以使用它来修改全局范围。 这启用了对所有写入相关命令的访问,且不需要预先配置的可访问路径。 这启用了对所有文件写入相关命令的访问,而不需要预先配置的可访问路径。 此插件权限包括用于定义哪些路径被允许或显式拒绝的作用域。有关作用域的更多信息,请参阅 命令作用域。 每个 作用域条目可以使用 要将作用域应用于任何 要将作用域应用于特定的 存在
exists()
函数检查文件是否存在元数据
stat
和 lstat
函数检索文件元数据。stat
跟随符号链接(如果指向的文件超出了作用域,则返回一个错误),而 lstat
不跟随符号链接,返回符号链接本身的统计信息。重命名
rename
函数接收源路径和目标路径。请注意,您必须单独为每个基本目录进行配置。截断
目录
创建
mkdir
函数读取
readDir
函数递归地列出目录条目删除
remove()
删除目录。如果目录不存在,则返回一个错误。recursive
选项设置为 true
存在
exists()
函数检查目录是否存在元数据
stat
和 lstat
函数检索目录元数据。stat
跟随符号链接(如果指向的文件超出了作用域,则返回一个错误),而 lstat
不跟随符号链接,返回符号链接本身的统计信息。监视变更
watch
或 watchImmediate
函数。
watch
具有防抖功能,因此它只在一定的延迟后才会发出事件watchImmediate
立即通知监听器事件recursive
选项设置为 true
。权限
capabilities
配置中的权限才能启用这些功能。默认权限
fs
插件默认启用了哪些或拒绝哪些类型的文件系统访问。授予的权限
mkdir
命令创建所有这些目录。拒绝的权限
此默认权限集中包含的权限
create-app-specific-dirs
read-app-specific-dirs-recursive
deny-default
权限表
标识符
描述
fs:allow-app-read-recursive
fs:allow-app-write-recursive
fs:allow-app-read
fs:allow-app-write
fs:allow-app-meta-recursive
fs:allow-app-meta
fs:scope-app-recursive
fs:scope-app
fs:scope-app-index
fs:allow-appcache-read-recursive
$APPCACHE
)进行完全递归读取访问。
fs:allow-appcache-write-recursive
$APPCACHE
)进行完全递归写入访问。
fs:allow-appcache-read
$APPCACHE
)进行非递归读取访问。
fs:allow-appcache-write
$APPCACHE
)进行非递归写入访问。
fs:allow-appcache-meta-recursive
$APPCACHE
)的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-appcache-meta
$APPCACHE
)的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-appcache-recursive
$APPCACHE
),包括子目录和文件。
fs:scope-appcache
$APPCACHE
)中的所有文件和顶级目录的内容列表。
fs:scope-appcache-index
$APPCACHE
)中的所有文件和文件夹。
fs:allow-appconfig-read-recursive
$APPCONFIG
)进行完全递归读取访问。
fs:allow-appconfig-write-recursive
$APPCONFIG
)进行完全递归写入访问。
fs:allow-appconfig-read
$APPCONFIG
)进行非递归读取访问。
fs:allow-appconfig-write
$APPCONFIG
)进行非递归写入访问。
fs:allow-appconfig-meta-recursive
$APPCONFIG
)的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-appconfig-meta
$APPCONFIG
)的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-appconfig-recursive
$APPCONFIG
),包括子目录和文件。
fs:scope-appconfig
$APPCONFIG
)中的所有文件和顶级目录的内容列表。
fs:scope-appconfig-index
$APPCONFIG
)中的所有文件和文件夹。
fs:allow-appdata-read-recursive
$APPDATA
文件夹、文件和子目录进行完全递归读取访问。
fs:允许-appdata写入递归
$APPDATA
文件夹、文件和子目录进行完全递归写入访问。
fs:允许-appdata读取
$APPDATA
文件夹进行非递归读取访问。
fs:允许-appdata写入
$APPDATA
文件夹进行非递归写入访问。
fs:允许-appdata元-递归
$APPDATA
文件夹的元数据以及文件列表和统计数据进行完全递归读取访问。
fs:允许-appdata元
$APPDATA
文件夹的元数据以及文件列表和统计数据进行非递归读取访问。
fs:作用域-appdata递归
$APPDATA
文件夹进行递归访问,包括子目录和文件。
fs:作用域-appdata
$APPDATA
文件夹中的所有文件和顶级目录的内容列表。
fs:作用域-appdata索引
$APPDATA
文件夹中的所有文件和文件夹。
fs:允许-applocaldata读取递归
$APPLOCALDATA
文件夹、文件和子目录进行完全递归读取访问。
fs:允许-applocaldata写入递归
$APPLOCALDATA
文件夹、文件和子目录进行完全递归写入访问。
fs:允许-applocaldata读取
$APPLOCALDATA
文件夹进行非递归读取访问。
fs:允许-applocaldata写入
$APPLOCALDATA
文件夹进行非递归写入访问。
fs:允许-applocaldata元-递归
$APPLOCALDATA
文件夹的元数据以及文件列表和统计数据进行完全递归读取访问。
fs:允许-applocaldata元
$APPLOCALDATA
文件夹的元数据以及文件列表和统计数据进行非递归读取访问。
fs:作用域-applocaldata递归
$APPLOCALDATA
文件夹进行递归访问,包括子目录和文件。
fs:作用域-applocaldata
$APPLOCALDATA
文件夹中的所有文件和顶级目录的内容列表。
fs:作用域-applocaldata索引
$APPLOCALDATA
文件夹中的所有文件和文件夹。
fs:允许-applog读取递归
$APPLOG
文件夹、文件和子目录进行完全递归读取访问。
fs:允许-applog写入递归
$APPLOG
文件夹、文件和子目录进行完全递归写入访问。
fs:允许-applog读取
$APPLOG
文件夹进行非递归读取访问。
fs:允许-applog写入
$APPLOG
文件夹进行非递归写入访问。
fs:允许-applog元-递归
$APPLOG
文件夹的元数据以及文件列表和统计数据进行完全递归读取访问。
fs:允许-applog元
$APPLOG
文件夹的元数据以及文件列表和统计数据进行非递归读取访问。
fs:作用域-applog递归
$APPLOG
文件夹进行递归访问,包括子目录和文件。
fs:作用域-applog
$APPLOG
文件夹中的所有文件和顶级目录的内容列表。
fs:作用域-applog索引
$APPLOG
文件夹中的所有文件和文件夹。
fs:允许-audio读取递归
$AUDIO
文件夹、文件和子目录进行完全递归读取访问。
fs:允许-audio写入递归
$AUDIO
文件夹、文件和子目录进行完全递归写入访问。
fs:允许-audio读取
$AUDIO
文件夹进行非递归读取访问。
fs:允许-audio写入
$AUDIO
文件夹进行非递归写入访问。
fs:允许-audio元-递归
$AUDIO
文件夹的元数据以及文件列表和统计数据进行完全递归读取访问。
fs:允许-audio元
$AUDIO
文件夹的元数据以及文件列表和统计数据进行非递归读取访问。
fs:scope-audio-recursive
$AUDIO
文件夹,包括子目录和文件。
fs:scope-audio
$AUDIO
文件夹中的所有文件以及顶级目录的列表内容。
fs:scope-audio-index
$AUDIO
文件夹中的所有文件和文件夹。
fs:allow-cache-read-recursive
$CACHE
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-cache-write-recursive
$CACHE
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-cache-read
$CACHE
文件夹进行非递归读取访问。
fs:allow-cache-write
$CACHE
文件夹进行非递归写入访问。
fs:allow-cache-meta-recursive
$CACHE
文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-cache-meta
$CACHE
文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-cache-recursive
$CACHE
文件夹,包括子目录和文件。
fs:scope-cache
$CACHE
文件夹中的所有文件以及顶级目录的列表内容。
fs:scope-cache-index
$CACHE
文件夹中的所有文件和文件夹。
fs:allow-config-read-recursive
$CONFIG
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-config-write-recursive
$CONFIG
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-config-read
$CONFIG
文件夹进行非递归读取访问。
fs:allow-config-write
$CONFIG
文件夹进行非递归写入访问。
fs:allow-config-meta-recursive
$CONFIG
文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-config-meta
$CONFIG
文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-config-recursive
$CONFIG
文件夹,包括子目录和文件。
fs:scope-config
$CONFIG
文件夹中的所有文件以及顶级目录的列表内容。
fs:scope-config-index
$CONFIG
文件夹中的所有文件和文件夹。
fs:allow-data-read-recursive
$DATA
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-data-write-recursive
$DATA
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-data-read
$DATA
文件夹进行非递归读取访问。
fs:allow-data-write
$DATA
文件夹进行非递归写入访问。
fs:allow-data-meta-recursive
$DATA
文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-data-meta
$DATA
文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-data-recursive
$DATA
文件夹,包括子目录和文件。
fs:scope-data
$DATA
文件夹下的所有文件以及顶级目录的内容。
fs:scope-data-index
$DATA
文件夹下的所有文件和文件夹。
fs:allow-desktop-read-recursive
$DESKTOP
文件夹,包括文件和子目录。
fs:allow-desktop-write-recursive
$DESKTOP
文件夹,包括文件和子目录。
fs:allow-desktop-read
$DESKTOP
文件夹。
fs:allow-desktop-write
$DESKTOP
文件夹。
fs:allow-desktop-meta-recursive
$DESKTOP
文件夹的元数据,包括文件列表和统计信息。
fs:allow-desktop-meta
$DESKTOP
文件夹的元数据,包括文件列表和统计信息。
fs:scope-desktop-recursive
$DESKTOP
文件夹,包括子目录和文件。
fs:scope-desktop
$DESKTOP
文件夹下的所有文件以及顶级目录的内容。
fs:scope-desktop-index
$DESKTOP
文件夹下的所有文件和文件夹。
fs:allow-document-read-recursive
$DOCUMENT
文件夹,包括文件和子目录。
fs:allow-document-write-recursive
$DOCUMENT
文件夹,包括文件和子目录。
fs:allow-document-read
$DOCUMENT
文件夹。
fs:allow-document-write
$DOCUMENT
文件夹。
fs:allow-document-meta-recursive
$DOCUMENT
文件夹的元数据,包括文件列表和统计信息。
fs:allow-document-meta
$DOCUMENT
文件夹的元数据,包括文件列表和统计信息。
fs:scope-document-recursive
$DOCUMENT
文件夹,包括子目录和文件。
fs:scope-document
$DOCUMENT
文件夹下的所有文件以及顶级目录的内容。
fs:scope-document-index
$DOCUMENT
文件夹下的所有文件和文件夹。
fs:allow-download-read-recursive
$DOWNLOAD
文件夹,包括文件和子目录。
fs:allow-download-write-recursive
$DOWNLOAD
文件夹,包括文件和子目录。
fs:allow-download-read
$DOWNLOAD
文件夹。
fs:allow-download-write
$DOWNLOAD
文件夹。
fs:allow-download-meta-recursive
$DOWNLOAD
文件夹的元数据,包括文件列表和统计信息。
fs:allow-download-meta
$DOWNLOAD
文件夹的元数据,包括文件列表和统计信息。
fs:scope-download-recursive
$DOWNLOAD
文件夹,包括子目录和文件。
fs:scope-download
$DOWNLOAD
文件夹中的所有文件和顶级目录的内容列表。
fs:scope-download-index
$DOWNLOAD
文件夹中的所有文件和文件夹。
fs:allow-exe-read-recursive
$EXE
文件夹及其文件和子目录完全递归读取访问。
fs:allow-exe-write-recursive
$EXE
文件夹及其文件和子目录完全递归写入访问。
fs:allow-exe-read
$EXE
文件夹非递归读取访问。
fs:allow-exe-write
$EXE
文件夹非递归写入访问。
fs:allow-exe-meta-recursive
$EXE
文件夹元数据完全递归读取访问,包括文件列表和统计信息。
fs:allow-exe-meta
$EXE
文件夹元数据非递归读取访问,包括文件列表和统计信息。
fs:scope-exe-recursive
$EXE
文件夹,包括子目录和文件。
fs:scope-exe
$EXE
文件夹中的所有文件和顶级目录的内容列表。
fs:scope-exe-index
$EXE
文件夹中的所有文件和文件夹。
fs:allow-font-read-recursive
$FONT
文件夹及其文件和子目录完全递归读取访问。
fs:allow-font-write-recursive
$FONT
文件夹及其文件和子目录完全递归写入访问。
fs:allow-font-read
$FONT
文件夹非递归读取访问。
fs:allow-font-write
$FONT
文件夹非递归写入访问。
fs:allow-font-meta-recursive
$FONT
文件夹元数据完全递归读取访问,包括文件列表和统计信息。
fs:allow-font-meta
$FONT
文件夹元数据非递归读取访问,包括文件列表和统计信息。
fs:scope-font-recursive
$FONT
文件夹,包括子目录和文件。
fs:scope-font
$FONT
文件夹中的所有文件和顶级目录的内容列表。
fs:scope-font-index
$FONT
文件夹中的所有文件和文件夹。
fs:allow-home-read-recursive
$HOME
文件夹及其文件和子目录完全递归读取访问。
fs:allow-home-write-recursive
$HOME
文件夹及其文件和子目录完全递归写入访问。
fs:allow-home-read
$HOME
文件夹非递归读取访问。
fs:allow-home-write
$HOME
文件夹非递归写入访问。
fs:allow-home-meta-recursive
$HOME
文件夹元数据完全递归读取访问,包括文件列表和统计信息。
fs:allow-home-meta
$HOME
文件夹元数据非递归读取访问,包括文件列表和统计信息。
fs:scope-home-recursive
$HOME
文件夹,包括子目录和文件。
fs:scope-home
$HOME
文件夹中的所有文件和顶级目录的内容列表。
fs:scope-home-index
$HOME
文件夹中的所有文件和文件夹。
fs:allow-localdata-read-recursive
$LOCALDATA
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-localdata-write-recursive
$LOCALDATA
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-localdata-read
$LOCALDATA
文件夹进行非递归读取访问。
fs:allow-localdata-write
$LOCALDATA
文件夹进行非递归写入访问。
fs:allow-localdata-meta-recursive
$LOCALDATA
文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-localdata-meta
$LOCALDATA
文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-localdata-recursive
$LOCALDATA
文件夹(包括子目录和文件)进行递归访问。
fs:scope-localdata
$LOCALDATA
文件夹中的所有文件,并列出顶层目录的内容。
fs:scope-localdata-index
$LOCALDATA
文件夹中的所有文件和文件夹。
fs:allow-log-read-recursive
$LOG
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-log-write-recursive
$LOG
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-log-read
$LOG
文件夹进行非递归读取访问。
fs:allow-log-write
$LOG
文件夹进行非递归写入访问。
fs:allow-log-meta-recursive
$LOG
文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-log-meta
$LOG
文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-log-recursive
$LOG
文件夹(包括子目录和文件)进行递归访问。
fs:scope-log
$LOG
文件夹中的所有文件,并列出顶层目录的内容。
fs:scope-log-index
$LOG
文件夹中的所有文件和文件夹。
fs:allow-picture-read-recursive
$PICTURE
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-picture-write-recursive
$PICTURE
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-picture-read
$PICTURE
文件夹进行非递归读取访问。
fs:allow-picture-write
$PICTURE
文件夹进行非递归写入访问。
fs:allow-picture-meta-recursive
$PICTURE
文件夹的元数据进行完全递归读取访问,包括文件列表和统计信息。
fs:allow-picture-meta
$PICTURE
文件夹的元数据进行非递归读取访问,包括文件列表和统计信息。
fs:scope-picture-recursive
$PICTURE
文件夹(包括子目录和文件)进行递归访问。
fs:scope-picture
$PICTURE
文件夹中的所有文件,并列出顶层目录的内容。
fs:scope-picture-index
$PICTURE
文件夹中的所有文件和文件夹。
fs:allow-public-read-recursive
$PUBLIC
文件夹、文件和子目录进行完全递归读取访问。
fs:allow-public-write-recursive
$PUBLIC
文件夹、文件和子目录进行完全递归写入访问。
fs:allow-public-read
$PUBLIC
文件夹进行非递归读取访问。
fs:allow-public-write
$PUBLIC
文件夹的非递归写入访问。
fs:allow-public-meta-recursive
$PUBLIC
文件夹元数据的全面递归读取访问,包括文件列表和统计信息。
fs:allow-public-meta
$PUBLIC
文件夹元数据的非递归读取访问,包括文件列表和统计信息。
fs:scope-public-recursive
$PUBLIC
文件夹,包括子目录和文件。
fs:scope-public
$PUBLIC
文件夹中所有文件和顶级目录的内容列表。
fs:scope-public-index
$PUBLIC
文件夹中的所有文件和文件夹。
fs:allow-resource-read-recursive
$RESOURCE
文件夹、文件和子目录的全面递归读取访问。
fs:allow-resource-write-recursive
$RESOURCE
文件夹、文件和子目录的全面递归写入访问。
fs:allow-resource-read
$RESOURCE
文件夹的非递归读取访问。
fs:allow-resource-write
$RESOURCE
文件夹的非递归写入访问。
fs:allow-resource-meta-recursive
$RESOURCE
文件夹元数据的全面递归读取访问,包括文件列表和统计信息。
fs:allow-resource-meta
$RESOURCE
文件夹元数据的非递归读取访问,包括文件列表和统计信息。
fs:scope-resource-recursive
$RESOURCE
文件夹,包括子目录和文件。
fs:scope-resource
$RESOURCE
文件夹中所有文件和顶级目录的内容列表。
fs:scope-resource-index
$RESOURCE
文件夹中的所有文件和文件夹。
fs:allow-runtime-read-recursive
$RUNTIME
文件夹、文件和子目录的全面递归读取访问。
fs:allow-runtime-write-recursive
$RUNTIME
文件夹、文件和子目录的全面递归写入访问。
fs:allow-runtime-read
$RUNTIME
文件夹的非递归读取访问。
fs:allow-runtime-write
$RUNTIME
文件夹的非递归写入访问。
fs:allow-runtime-meta-recursive
$RUNTIME
文件夹元数据的全面递归读取访问,包括文件列表和统计信息。
fs:allow-runtime-meta
$RUNTIME
文件夹元数据的非递归读取访问,包括文件列表和统计信息。
fs:scope-runtime-recursive
$RUNTIME
文件夹,包括子目录和文件。
fs:scope-runtime
$RUNTIME
文件夹中所有文件和顶级目录的内容列表。
fs:scope-runtime-index
$RUNTIME
文件夹中的所有文件和文件夹。
fs:allow-temp-read-recursive
$TEMP
文件夹、文件和子目录的全面递归读取访问。
fs:allow-temp-write-recursive
$TEMP
文件夹、文件和子目录的全面递归写入访问。
fs:allow-temp-read
$TEMP
文件夹的非递归读取访问。
fs:allow-temp-write
$TEMP
文件夹的非递归写入访问。
fs:allow-temp-meta-recursive
$TEMP
文件夹元数据的全面递归读取访问,包括文件列表和统计信息。
fs:allow-temp-meta
$TEMP
文件夹元数据的非递归读取访问,包括文件列表和统计信息。
fs:scope-temp-recursive
$TEMP
文件夹,包括子目录和文件。
fs:scope-temp
$TEMP
文件夹中所有文件和顶级目录的内容列表。
fs:scope-temp-index
$TEMP
文件夹中的所有文件和文件夹。
fs:allow-template-read-recursive
$TEMPLATE
文件夹、文件和子目录。
fs:allow-template-write-recursive
$TEMPLATE
文件夹、文件和子目录。
fs:allow-template-read
$TEMPLATE
文件夹。
fs:allow-template-write
$TEMPLATE
文件夹。
fs:allow-template-meta-recursive
$TEMPLATE
文件夹的元数据,包括文件列表和统计信息。
fs:allow-template-meta
$TEMPLATE
文件夹的元数据,包括文件列表和统计信息。
fs:scope-template-recursive
$TEMPLATE
文件夹,包括子目录和文件。
fs:scope-template
$TEMPLATE
文件夹中的所有文件以及顶级目录的内容列表。
fs:scope-template-index
$TEMPLATE
文件夹中的所有文件和文件夹。
fs:allow-video-read-recursive
$VIDEO
文件夹、文件和子目录。
fs:allow-video-write-recursive
$VIDEO
文件夹、文件和子目录。
fs:allow-video-read
$VIDEO
文件夹。
fs:allow-video-write
$VIDEO
文件夹。
fs:allow-video-meta-recursive
$VIDEO
文件夹的元数据,包括文件列表和统计信息。
fs:allow-video-meta
$VIDEO
文件夹的元数据,包括文件列表和统计信息。
fs:scope-video-recursive
$VIDEO
文件夹,包括子目录和文件。
fs:scope-video
$VIDEO
文件夹中的所有文件以及顶级目录的内容列表。
fs:scope-video-index
$VIDEO
文件夹中的所有文件和文件夹。
fs:allow-copy-file
fs:deny-copy-file
fs:allow-create
fs:deny-create
fs:allow-exists
fs:deny-exists
fs:allow-fstat
fs:deny-fstat
fs:allow-ftruncate
fs:deny-ftruncate
fs:allow-lstat
fs:deny-lstat
fs:allow-mkdir
fs:deny-mkdir
fs:allow-open
fs:deny-open
fs:allow-read
fs:deny-read
fs:allow-read-dir
fs:deny-read-dir
fs:allow-read-file
fs:deny-read-file
fs:allow-read-text-file
fs:deny-read-text-file
fs:allow-read-text-file-lines
fs:deny-read-text-file-lines
fs:allow-read-text-file-lines-next
fs:deny-read-text-file-lines-next
fs:allow-remove
fs:deny-remove
fs:allow-rename
fs:deny-rename
fs:allow-seek
fs:deny-seek
fs:allow-size
fs:deny-size
fs:allow-stat
fs:deny-stat
fs:allow-truncate
fs:deny-truncate
fs:allow-unwatch
fs:deny-unwatch
fs:allow-watch
fs:deny-watch
fs:allow-write
fs:deny-write
fs:allow-write-file
fs:deny-write-file
fs:allow-write-text-file
fs:deny-write-text-file
fs:create-app-specific-dirs
fs:deny-default
fs:deny-webview-data-linux
$APPLOCALDATA
文件夹的读取访问,因为webview数据和配置值存储在这里。允许访问可能导致敏感信息泄露,应认真考虑。
fs:deny-webview-data-windows
$APPLOCALDATA/EBWebView
文件夹的读取访问,因为webview数据和配置值存储在这里。允许访问可能导致敏感信息泄露,应认真考虑。
fs:read-all
fs:read-app-specific-dirs-recursive
fs:read-dirs
fs:read-files
fs:read-meta
fs:scope
fs:write-all
fs:write-files
作用域
allow
或 deny
作用域都必须包括一个数组,列出所有应允许或拒绝的路径。作用域条目采用 { path: string }
格式。$<path>
变量来引用常见系统路径,如主目录、应用资源目录和配置目录。以下表格列出了您可以引用的所有常见路径路径 变量 appConfigDir $APPCONFIG appDataDir $APPDATA appLocalDataDir $APPLOCALDATA appcacheDir $APPCACHE applogDir $APPLOG audioDir $AUDIO cacheDir $CACHE configDir $CONFIG dataDir $DATA localDataDir $LOCALDATA desktopDir $DESKTOP documentDir $DOCUMENT downloadDir $DOWNLOAD executableDir $EXE fontDir $FONT homeDir $HOME pictureDir $PICTURE publicDir $PUBLIC runtimeDir $RUNTIME templateDir $TEMPLATE videoDir $VIDEO resourceDir $RESOURCE tempDir $TEMP 示例
fs
命令,请使用 fs:scope
权限fs
命令,请使用权限的对象形式 { "identifier": string, "allow"?: [], "deny"?: [] }
© 2025 Tauri 贡献者。CC-BY / MIT