Ошибка tizen.filesystem.resolve() - содержимое объекта не содержит допустимых значений

Я выполняю следующий код в веб-приложении Tizen, над которым я работаю

tizen.filesystem.resolve('.',
function (dir) {
    dir.listFiles(
        function (files) {
            for (var i = 0; i < files.length; ++i)
                console.log('File : ' + files[i].name + '\nURL : ' + files[i].toURI() + '\n========');
            } )
},
function (err) { console.log('Error : ' + err.message); window.__error = err },
'r')

... и я получаю следующее в консоли

null
VM569:10 Error : The content of an object does not include valid values.

У меня вопрос, что не так с фрагментом кода выше? Как я должен вызывать API файловой системы Tizen?

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

2 ответа

Решение

tizen.filesystem.resolve(''

Выше вы пытаетесь решить . (root?) поддержка для которого не требуется, и, вероятно, у вас нет к ней доступа.

VM569: 10 Ошибка: содержимое объекта не содержит допустимых значений.

Это также подтверждает мои наблюдения из документов:

ErrorCallback запускается со следующими типами ошибок:

  • InvalidValuesError - Если какой-либо из входных параметров содержит недопустимое значение. Например, режим "w" для виртуальных корней только для чтения (wgt-package и рингтоны).

Попробуйте использовать одно из поддерживаемых мест:

Список корневых расположений, которые должны поддерживаться совместимой реализацией:

  • документы - папка по умолчанию, в которой текстовые документы (такие как pdf, doc...) по умолчанию хранятся на устройстве. Например, на некоторых платформах это соответствует папке "Мои документы".
  • images - папка по умолчанию, в которой неподвижные изображения, например изображения (в форматах jpg, gif, png и т. д.), сохраняются на устройстве по умолчанию. Например, на некоторых платформах это соответствует папке "Мои изображения".
  • музыка - папка по умолчанию, в которой по умолчанию на устройстве хранятся аудиоклипы (в форматах, таких как mp3, aac и т. д.). Например, на некоторых платформах это соответствует папке "Моя музыка".
  • videos - папка по умолчанию, в которой видеоклипы (в таких форматах, как avi, mp4 и т. д.) хранятся на устройстве по умолчанию. Например, на некоторых платформах это соответствует папке "Мои видео".
  • загрузки - папка по умолчанию, в которой загруженные файлы (из источников, включая браузер, почтовый клиент и т. д.) по умолчанию хранятся на устройстве. Например, на некоторых платформах это соответствует папке "Загрузки". рингтоны: папка по умолчанию, в которой рингтоны (например, mp3 и т. д.) хранятся на устройстве. камера: папка по умолчанию, в которой хранятся изображения и видео, снятые устройством.
  • wgt-package - папка только для чтения, в которую извлекается содержимое файла виджета.
  • wgt-private - личная папка, в которой виджет хранит свою информацию. Эта папка должна быть доступна только для того же виджета, а другие виджеты или приложения не должны иметь доступа к хранимой информации.
  • wgt-private-tmp - временная, личная папка, в которой виджет может хранить данные, доступные во время цикла выполнения виджета. Содержимое этой папки можно удалить из этого каталога, когда виджет закрыт или веб-среда выполнения перезапущена. Эта папка должна быть доступна только для того же виджета, а другие виджеты или приложения не должны иметь к ней доступ.

Смотрите пример кода из API ref. сайт:

var documentsDir;
function onsuccess(files) {
 for (var i = 0; i < files.length; i++) {
   console.log("File Name is " + files[i].name); // displays file name
 }

 var testFile = documentsDir.createFile("test.txt");

 if (testFile != null) {
   testFile.openStream(
     "w",
     function(fs) {
       fs.write("HelloWorld");
       fs.close();
     }, function(e) {
       console.log("Error " + e.message);
     }, "UTF-8"
   );
 }
}

function onerror(error) {
 console.log("The error " + error.message + " occurred when listing the files in the selected folder");
}

tizen.filesystem.resolve(
 'documents',
 function(dir) {
   documentsDir = dir;
   dir.listFiles(onsuccess, onerror);
 }, function(e) {
   console.log("Error" + e.message);
 }, "rw"
);

См. ниже Руководство по 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"
 );
Другие вопросы по тегам