首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tauri -如何读取项目文件夹中的文件?

Tauri -如何读取项目文件夹中的文件?
EN

Stack Overflow用户
提问于 2022-05-20 17:42:33
回答 2查看 2.8K关注 0票数 2

我在Ubuntu上使用了Tauri JS。我想读取一个csv文件,它在项目目录中。

代码语言:javascript
复制
/data/example.csv
/src-tauri/
/src
...

我激活了fs模块,尝试了不同的模式

代码语言:javascript
复制
"all": true,
      "fs": {
        "scope": {
          "allow": ["$APP/**", "$APP/db/**", "$APP/data/**" ,"$DOWNLOAD/**", "$RESOURCE/**", "/data/**", "data/**"]
        }
      },

但是,当我试图用以下代码阅读时:

代码语言:javascript
复制
import { readTextFile } from "@tauri-apps/api/fs";

let filePath = "./data/example.csv";
console.log("File path:", filePath)
const promise = readTextFile(filePath);
promise.then((response) => {
    console.log(response);
}).catch((error) => {
    console.error(error);
})

我总是收到以下错误:

配置的作用域不允许错误路径:./data/profiles.csv

EN

回答 2

Stack Overflow用户

发布于 2022-07-21 15:32:53

这个对我有用。当您调用dir: path时,需要一个额外的readTextFile选项。我将它与Tauri - BaseDirectory一起使用,并继续使用相对路径。也许它也适用于一个文件。

  1. 等待: 从“@tauri api/api/fs”导入{ BaseDirectory,readTextFile };导出const readFile1 =异步() => {readTextFile{file.txt,{ dir: BaseDirectory.App,});console.log(“结果:+结果”);返回结果;} catch (错误){console.log(错误);返回false;}};
  2. 有了承诺,并根据你的例子调整:

代码语言:javascript
复制
export const readFile2 = async() => {
  let filePath = "data\\example.csv";
  let appPath = BaseDirectory.App;
  console.log("File path:", filePath);
  const promise = readTextFile(filePath, {
    dir: appPath,
  });
  promise
    .then((response) => {
      console.log(response);
    })
    .catch((error) => {
      console.error(error);
    });
};

为了完整起见,我的tauri.conf.json内容:

代码语言:javascript
复制
...
"tauri": {
  "allowlist": {
    "fs": {
      "all": true,
      "scope": [
        "$APP/*",
        "$DESKTOP/*"
      ]
    }
  },
  ...

如果您将文件替换为错误的"notThere.txt“文件,则错误将显示它正在查找的控制台中的路径。我也有同样的问题。您可以用(ctrl+shift+i)或右键单击tauri应用程序中的控制台。

对于其他试图让它工作的人:您需要将tauri添加到您的项目:yarn add -D @tauri-apps/api中。

博客的一篇文章对我有很大的帮助。他应用了与Tauri不同的方法,比如读/写文件,或者用Tauri创建一个目录。

票数 0
EN

Stack Overflow用户

发布于 2022-07-23 06:00:31

写这个

代码语言:javascript
复制
import { resourceDir } from '@tauri-apps/api/path';
const resourceDirPath = await resourceDir();
console.log(resourceDirPath)

$ npm run tauri dev

控制台日志显示

yourApp\src-tauri\target\debug

$ npm运行tauri构建

控制台日志显示

yourApp\src-tauri\target\release

https://tauri.app/v1/api/js/modules/path/#resourcedir

把这个设置忘了

代码语言:javascript
复制
 "fs": {
        "all": true,
        "scope": [
          "$RESOURCE/*"
        ]
      },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72322892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档