前言

  1. 开发的 app 数据放哪里?
  2. 我的配置信息应该写到哪个文件?
  3. 日志又写到哪里?
  4. 缓存写到哪里?

获取数据目录

TauriRust 侧要获取对应的目录需要使用 path_resolver

下面是获取数据、配置、日志、缓存目录的示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
tauri::Builder::default()
    .setup(|app| {
        let cache_dir = app.handle().path_resolver().app_cache_dir();
        let data_dir = app.handle().path_resolver().app_data_dir();
        let local_data_dir = app.handle().path_resolver().app_local_data_dir();
        let log_dir = app.handle().path_resolver().app_log_dir();
        let config_dir = app.handle().path_resolver().app_config_dir();
        println!("cache dir: {:?}", cache_dir);
        println!("data dir: {:?}", data_dir);
        println!("local data dir: {:?}", local_data_dir);
        println!("log dir: {:?}", log_dir);
        println!("config dir: {:?}", config_dir);
        Ok(())
    })
    .invoke_handler(tauri::generate_handler![greet])
    .run(tauri::generate_context!())
    .expect("error while running tauri application");

输出如下(Mac 平台)

1
2
3
4
5
cache dir: Some("/Users/test/Library/Caches/com.tauri.test")
data dir: Some("/Users/test/Library/Application Support/com.tauri.test")
local data dir: Some("/Users/test/Library/Application Support/com.tauri.test")
log dir: Some("/Users/test/Library/Logs/com.tauri.test")
config dir: Some("/Users/test/Library/Application Support/com.tauri.test")

不难发现 data dirlocal data dir 的路径是一样的,使用的时候挑一个顺手的就行。

JS

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import {appCacheDir,appDataDir, appLocalDataDir,appLogDir,appConfigDir } from '@tauri-apps/api/path';

const cacheDir = await appCacheDir();
const dataDir = await appDataDir();
const localDataDir = await appLocalDataDir();
const logDir = await appLogDir();
const configDir = await appConfigDir();
console.log("cache dir: ", cacheDir);
console.log("data dir: ", dataDir);
console.log("local data dir: ", localDataDir);
console.log("log dir: ", logDir);
console.log("config dir: ", configDir);

输出的结果和上面是一样的,这里就不赘述了。

配置 path 访问权限

老规矩,还是要在 tauri.conf.json 中配置 path 的权限

1
2
3
4
5
6
7
8
9
{
  "tauri": {
    "allowlist": {
      "path": {
        "all": true,
      }
    }
  }
}

总结

Tauri 为我们封装了一系列的方法,让我们知道把数据存到哪里,下面是简单的概括

  • 数据 app_data_dir
  • 缓存 app_cache_dir
  • 配置 app_config_dir
  • 日志 app_log_dir

参考

path | Tauri Apps