Tauri 通过 FS API (writeTextFile) 保存文件的一些问题
前言
我在使用 FS API 进行文件读写,但遇到了一些问题。
下面是部分代码,对了,这里使用了 setup 语法糖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <script setup> import { BaseDirectory, exists, writeTextFile, readTextFile, createDir } from '@tauri-apps/api/fs';
async function getList() { try { const filePath = 'xxx.json'; const fileContent = 'xxx';
if (!(await exists(filePath, { dir: BaseDirectory.AppData }))) { await writeTextFile(filePath, fileContent, { dir: BaseDirectory.AppData }); console.log('File created successfully'); } else { console.log('File already exists'); } } catch (error) { console.error('Error creating file:', error); } }
getList();
</script>
|
当我尝试运行代码时,控制台显示:
1
| Error creating file: path: C:\Users\xxx\AppData\Roaming\com.tauri.dev\xxx.json: 系统找不到指定的路径。 (os error 3)
|
解决方案
在询问了大佬之后,尝试了:
1
| await writeTextFile(filePath, fileContent, { dir: BaseDirectory.AppData, recursive: true });
|
并不起效果。
然而,解决方法相当简单,只要:
1 2 3 4
| if (!(await exists('xxxx.json', { dir: BaseDirectory.AppData }))) { await createDir('data', { dir: BaseDirectory.AppData, recursive: true }); await writeTextFile('xxxx.json', 'xxx', { dir: BaseDirectory.AppData }); }
|
没错,创建一个文件夹之后,就起效果了!