Как читать файлы "ресурсов", добавленные через Tizen IDE
Я делаю свои первые шаги по программированию веб-приложений для носимых устройств Tizen. Вот что я хочу сделать:
- Используя Tizen IDE, добавьте файл, например,xtxt, в папку, например, data/text (т. Е. Относительный путь от корня проекта - data / text / x.txt)
- Во время выполнения я хочу прочитать содержимое файла x.txt
- ... и сделать дополнительную обработку с ним.
Я думал, что я мог просто прочитать wgt-package
виртуальный корень, но мой код (после исправления) не возвращает файл в этом месте.
Как я мог это сделать? Кстати, я тестировал на веб-симуляторе.
PS Мне известно о том, что это довольно просто, так что, думаю, это должно быть где-то задокументировано, но я просто не смог найти ссылку после поиска некоторое время (со вчерашнего дня), поэтому я надеюсь, что кто-то может помочь мне поставить мой усилия на правильном пути
Заранее спасибо!
2 ответа
См. ниже Руководство по FileSystem и Справочник по API
Учебное пособие по файловой системе https://developer.tizen.org/development/tutorials/web-application/tizen-features/base/filesystem
Справочник по API файловой системы https://developer.tizen.org/dev-guide/latest/org.tizen.web.apireference/html/device_api/mobile/tizen/filesystem.html
Если вы поместите свой текстовый файл в /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"
);
Вы не показали свой текущий работающий код, поэтому трудно точно определить вашу проблему. Может быть, вы упускаете привилегию? 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!