tizen.filesystem.resolve() error - 对象的内容不包含有效值

tizen.filesystem.resolve() error - The content of an object does not include valid values

本文关键字:有效值 包含 对象 resolve filesystem error tizen      更新时间:2023-09-26

我正在我正在处理的Tizen Web应用程序中执行以下代码

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?

提前谢谢.

tizen.filesystem.resolve('."

上面,您正在尝试解决不需要的.(root?)支持,并且您可能无法访问它。

VM569:10 错误:对象的内容不包含有效值。

这也证实了我从文档中的观察:

错误

回调使用以下错误类型启动:

  • 无效值错误 - 如果任何输入参数包含无效值。例如,只读虚拟根目录(wgt 包和铃声)的模式为"w"。

尝试使用受支持的位置之一:

合规实现必须支持的根位置列表包括:

  • 文档 - 默认将文本文档(如 pdf、doc...)存储在设备中的默认文件夹。例如,在某些平台中,它对应于"我的文档"文件夹。
  • 图像 - 默认文件夹中默认存储静止图像(如图片(格式包括 jpg、gif、png 等))的文件夹。例如,在某些平台中,它对应于"我的图像"文件夹。
  • music - 默认情况下,声音剪辑(格式包括 mp3、aac 等)存储在设备中的默认文件夹。例如,在某些平台中,它对应于"我的音乐"文件夹。
  • videos-默认情况下,视频剪辑(格式包括avi,mp4等)存储在设备中的默认文件夹。例如,在某些平台中,它对应于"我的视频"文件夹。
  • downloads - 默认将下载的文件(来自浏览器、电子邮件客户端等源)存储在设备中的默认文件夹。例如,在某些平台中,它对应于"下载"文件夹。 铃声:设备中存储铃声(如 mp3 等)的默认文件夹。 相机 :存储设备拍摄的照片和视频的默认文件夹。
  • wgt-package - 将小部件文件的内容提取到的只读文件夹。
  • wgt-private - 小组件存储其信息的私有文件夹。此文件夹必须只能由同一小部件访问,并且其他小部件或应用程序不得访问存储的信息。
  • wgt-private-tmp - 临时,小部件可以在其中存储小部件执行周期内可用数据的私有文件夹。关闭小组件或重新启动 Web 运行时时,可以从此目录中删除此文件夹的内容。此文件夹必须只能由同一微件访问,并且其他微件或应用程序不得访问它。

请参阅来自 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"
);

请参阅下面的文件系统教程和 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 上。您可以在webapi上使用"wgt-package/data/text/x.txt"路径访问该文件。

下面是简单的示例代码。试试看。

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"
 );