【问题标题】:Can't read or write files with Tabris.js无法使用 Tabris.js 读取或写入文件
【发布时间】:2018-09-03 02:54:48
【问题描述】:

我在 Windows 10 上,尝试使用 Tabris.js 读写一个简单的文本文件

console.log 报告:

/local/src/hello.txt
Error: No such file or directory: /local/src/hello.txt

代码:

const {fs} = require('tabris');

let path=fs.filesDir + '/src/hello.txt'
console.log(path)

fs.writeFile(path, 'Hello World!', 'ascii')
.then(() => console.log('file written:', path))
.catch(err => console.error(err));

Tabris.js 参考:

澄清:

如果我能做到这一点,我会做一个非常简单的教程。

Tabris 运行良好,没有任何问题,但由于查找文件时出错,我无法读取或写入文件。我已经尝试了十几种东西的组合,有点,没有点等 - 没有运气。尝试了 __directory、fs.filesDir 等,因此路径不会被硬编码,没有任何效果。

Tabris 文件夹和文件位置:

C:\Users\Rob Acer Aspire 3\junk\package.json
C:\Users\Rob Acer Aspire 3\junk\src\app.js

Tabris 2.4

感谢大家的帮助。

更新 - 让它工作......

它现在似乎可以工作了,代码如下。我假设 hello.txt 将在我的 /src 文件夹中,或者至少在我名为“垃圾”的 tabris 文件夹中它正在写入另一个文件夹。似乎文档在这方面是正确的,因为他们说应用程序可能用来存储持久文件的目录的路径。

  let file = fs.filesDir + '/hello.txt';
  //  ok, this works.. > file written: /local/hello.txt
  // and is located in:
  // C:\Users\Rob Acer Aspire 3\AppData\Local\Packages\EclipseSource.Tabris.js2_en185yn5qwkmw\LocalState\hello.txt

我不明白/local/hello.txt 的真正含义

所以,我的问题得到了解答,感谢您的帮助。

罗伯

【问题讨论】:

  • 我根据我在您的问题中看到的内容发布了答案。如果答案没有帮助,您尝试以 Windows 形式读取的实际目录是什么?
  • 嘿,谢谢.... 现在仍在使用 ."./local/src/hello.txt" - Windows 10 上的实际目录是:C:\Users\Rob Acer Aspire 3\junk \src\hello1.txt - 垃圾文件夹是使用`tabris init`创建的
  • 该目录将是“./users/Rob Acer Aspire 3/junk/src/hell1.txt”,但您应该使用代码的相对位置,那么您的代码在哪个目录中运行?
  • 我将对原始问题进行澄清。但我无法让它与任何路径一起工作......即,这会产生错误:错误:没有这样的文件或目录:./users/Rob Acer Aspire 3/junk/src/hello.txt at createError (./node -modules/tabris/tabris.min.js:1:69264) 我尝试了不同的文件,如 hello1.txt、hello.txt 等。
  • mrmccormack,可以将此添加为答案并将其标记为已接受吗?这样问题就会显示为已解决

标签: javascript tabris


【解决方案1】:

在窗户上

"/local/src/hello.txt 

相当于

"c:\local\src\hello.txt"

为了使路径在您的应用程序目录中开始,您应该为当前应用程序目录使用“./”为路径加注星号,因此在您的情况下

"./local/src/hello.txt" 

如果你想返回一个目录,你可以从“../”开始

【讨论】:

    【解决方案2】:

    现在可以使用了,代码如下。我假设 hello.txt 将在我的 /src 文件夹中,或者至少在我名为“垃圾”的 tabris 文件夹中它正在写入另一个文件夹。正如他们所说,文档似乎对此是正确的:

    应用可用于存储持久文件的目录路径。

      let file = fs.filesDir + '/hello.txt';
      //  ok, this works.. > file written: /local/hello.txt
      // and is located in:
      // C:\Users\Rob Acer Aspire 3\AppData\Local\Packages\EclipseSource.Tabris.js2_en185yn5qwkmw\LocalState\hello.txt
    

    我不明白/local/hello.txt 的真正含义

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      相关资源
      最近更新 更多