我正在使用的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.
我的问题是,上面的代码段有什么问题?我该怎么调用Tizen文件系统API?
提前致谢。
答案 0 :(得分:1)
tizen.filesystem.resolve(&#39;&#39;
以上,您正在尝试解决.
(root?)支持,但这可能是您无法访问的。
VM569:10错误:对象的内容不包含有效值。
这也证实了我的观察,来自文档:
使用以下错误类型启动ErrorCallback:
- InvalidValuesError - 如果任何输入参数包含无效值。例如,模式是&#34; w&#34;对于只读虚拟根(wgt-package和ringtones)。
尝试使用其中一个受支持的位置:
合规实施必须支持的根位置列表如下:
- 文档 - 默认情况下,文本文档(例如pdf,doc ...)存储在设备中的默认文件夹。例如,在某些平台上,它对应于&#34;我的文档&#34;文件夹中。
- images - 默认情况下,静态图像(如图片(格式包括jpg,gif,png等))默认存储在设备中。例如,在某些平台上,它对应于&#34;我的图像&#34;文件夹中。
- 音乐 - 默认情况下,声音片段(格式包括mp3,aac等)默认存储在设备中的默认文件夹。例如,在某些平台上,它对应于&#34;我的音乐&#34;文件夹中。
- 视频 - 默认情况下,视频片段(格式包括avi,mp4等)默认存储在设备中的默认文件夹。例如,在某些平台上,它对应于&#34;我的视频&#34;文件夹中。
- 下载 - 默认情况下,下载文件(来自浏览器,电子邮件客户端等来源)的默认文件夹存储在设备中。例如,在某些平台上,它对应于&#34;下载&#34;夹。 铃声:铃声(如mp3等)存储在设备中的默认文件夹。 camera:存储设备拍摄的图片和视频的默认文件夹。
- wgt-package - 提取小部件文件内容的只读文件夹。
- wgt-private - 窗口小部件存储其信息的私有文件夹。此文件夹只能由同一个窗口小部件访问,其他窗口小部件或应用程序必须无法访问存储的信息。
- wgt-private-tmp - 临时,小部件可以存储小部件执行周期中可用数据的私有文件夹。关闭窗口小部件或重新启动Web运行时,可以从此目录中删除此文件夹的内容。此文件夹只能由同一个窗口小部件访问,其他窗口小部件或应用程序必须无法访问它。
查看API ref. site的示例代码:
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"
);
答案 1 :(得分:0)
请参阅FileSystem教程和API参考
下面的内容FileSystem教程https://developer.tizen.org/development/tutorials/web-application/tizen-features/base/filesystem#retrieve
Filesystem 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上。您可以使用&#34; wgt-package / data / text / x.txt&#34;访问该文件。 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"
);