Ошибка 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?

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


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


Ответы (2)


tizen.filesystem.resolve('.'

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

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

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

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

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

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

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

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

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

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"
);
person ozbek    schedule 01.03.2016
comment
Это исправило вышеупомянутую проблему. Спасибо . - person Olemis Lang; 02.03.2016
comment
@OlemisLang Я получаю. Uncaught TypeError: Не удается прочитать свойство «заменить» неопределенного. - person uday214125; 17.10.2018
comment
@uday214125 У меня такая же проблема. Любое решение? - person Mohammad Rajob; 16.06.2019

см. ниже Учебное пособие по файловой системе и Справочник по 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