【问题标题】:How to read "resource" files added via Tizen IDE如何读取通过 Tizen IDE 添加的“资源”文件
【发布时间】:2016-03-03 17:57:01
【问题描述】:

我正在为 Tizen 可穿戴设备的 Web 应用程序编程迈出第一步。这就是我想做的:

  1. 通过使用 Tizen IDE,添加一个文件,例如x.txt ,在文件夹下, 例如数据/文本(即项目根目录的相对路径是 数据/文本/x.txt)
  2. 在运行时,我想读取 x.txt 的内容 文件
  3. ...并对其进行一些额外的处理。

我以为我只能读取 wgt-package 虚拟根目录,但 my code(修复后)在该位置没有返回任何文件。

我怎么能这样做?顺便说一句,我一直在 web 模拟器上测试。

附言我知道这很简单,所以猜想这应该记录在某个地方,但我在搜索了一段时间后(从昨天开始)找不到参考,所以我希望有人能帮助我努力在正确的轨道上

提前致谢!

【问题讨论】:

    标签: javascript tizen tizen-wearable-sdk tizen-web-app tizen-web-simulator


    【解决方案1】:

    请参阅下面的文件系统教程和 API 参考

    文件系统教程https://developer.tizen.org/development/tutorials/web-application/tizen-features/base/filesystem#retrieve

    文件系统 API 参考https://developer.tizen.org/dev-guide/latest/org.tizen.web.apireference/html/device_api/mobile/tizen/filesystem.html#FileSystemManager::resolve

    如果您将文本文件放在 /project_root/data/text/x.txt 上。 您可以通过 webapi 上的“wgt-package/data/text/x.txt”路径访问该文件。

    所以下面是简单的示例代码。试试看。

     function onsuccess(files) {
       for (var i = 0; i < files.length; i++) {
         console.log("File Name is " + files[i].name); // displays file name
    
         if(file[i].name = "your_txt_file.txt"){
            //do something here. file[i].readAsText(....)
         }
       }
     }
    
     function onerror(error) {
       console.log("The error " + error.message + " occurred when listing the files in the selected folder");
     }
    
     tizen.filesystem.resolve(
         "wgt-package/data/text",
         function(dir) {
           documentsDir = dir; dir.listFiles(onsuccess,onerror);
         }, function(e) {
           console.log("Error" + e.message);
         }, "rw"
     );
    

    【讨论】:

      【解决方案2】:

      您没有显示您当前的工作代码,因此很难确定您的确切问题。可能是您缺少特权吗? tizen.filesystem.resolve 需要 http://tizen.org/privilege/filesystem.read,您必须将其添加到您的应用配置中。

      无论如何,在我的项目文件夹中使用data/text/helloworld.txt,以下示例代码可以正常工作:

      var textFolder = "wgt-package/data/text";
      var helloWorld = "helloworld.txt";
      
      function onsuccess(files) {
          for (var i = 0; i < files.length; i++) {
              if (files[i].name == helloWorld) {
                  files[i].openStream("r", function(fs) {
                      var text = fs.read(files[i].fileSize);
                      fs.close();
                      console.log("File contents: " + text);
                  }, function(e) {
                      console.log("Error " + e.message);
                  }, "UTF-8");
                  break;
              }
          }
      }
      
          function onerror(error) {
          console.log("The error " + error.message
                  + " occurred when listing the files in " + textFolder);
      }
      
      tizen.filesystem.resolve(textFolder, function(dir) {
              dir.listFiles(onsuccess, onerror);
          }, function(e) {
              console.log("Error" + e.message);
          }, "r"); // make sure to use 'r' mode as 'wgt-package' is read-only folder
      

      您应该在 JS 控制台中看到类似的日志,如下所示:

      js/main.js (10) :File contents: Hello World!
      

      【讨论】:

        猜你喜欢
        • 2011-07-24
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2019-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-18
        相关资源
        最近更新 更多