Ошибка 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"
);