Как читать файлы ресурсов, добавленные через Tizen IDE

Делаю первые шаги по программированию веб-приложений для носимых устройств Tizen. Вот что я хочу сделать:

  1. Используя Tizen IDE, добавьте файл, например. x.txt в папке, например. data/text (т.е. относительный путь от корня проекта data/text/x.txt )
  2. Во время выполнения я хочу прочитать содержимое файла x.txt
  3. ... и выполнить с ним дополнительную обработку.

Я думал, что смогу просто прочитать виртуальный корень wgt-package, но мой код (после исправления) не возвращает файл в этом месте.

Как я мог это сделать? Кстати, я тестировал на веб-симуляторе.

p.s. Я знаю, что это довольно просто, поэтому думаю, что это должно быть где-то задокументировано, но я просто не смог найти ссылку после некоторого поиска (со вчерашнего дня), поэтому я надеюсь, что кто-то может помочь мне приложить свои усилия на правильном пути

Заранее спасибо !


person Olemis Lang    schedule 03.03.2016    source источник


Ответы (2)


см. ниже Учебное пособие по файловой системе и Справочник по 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. Вы можете получить доступ к этому файлу с помощью пути «wgt-package/data/text/x.txt» на webapi.

Итак, ниже приведен простой пример кода. попробуй это.

 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"
 );
person Byonggon Chun    schedule 15.03.2016

Вы не показали свой текущий рабочий код, поэтому сложно определить точную проблему. Может быть, вам не хватает привилегии? 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!
person ozbek    schedule 04.03.2016