如何使用chrome apps fileSystem将FileEntry转换为标准JavaScript File对象

时间:2017-07-12 08:51:44

标签: javascript filesystems google-chrome-app

是否可以将FileEntry转换为标准JavaScript对象File? 我在文档https://developer.chrome.com/apps/fileSystem

中找不到任何有意义的内容

2 个答案:

答案 0 :(得分:9)

FileEntry documentation确实在此处提供了指导:

  

文件系统API的FileSystemFileEntry接口表示一个   文件系统中的文件。它提供描述文件的属性   属性以及创建文件对象的file()方法   可以用来读取文件。

不幸的是,file()方法依赖于回调而不是Promises,但是我们可以对其进行包装,并使使用API​​(以及阅读代码)更加容易:

async function getFile(fileEntry) {
  try {
    return await new Promise((resolve, reject) => fileEntry.file(resolve, reject));
  } catch (err) {
    console.log(err);
  }
}

var file = await getFile(fileEntry);

请注意,FileSystemFileEntry是非标准功能,不是标准跟踪,因此API和浏览器支持可能会更改!

答案 1 :(得分:4)

我在谷歌示例https://github.com/GoogleChrome/chrome-app-samples/blob/master/samples/filesystem-access/js/app.js

中找到了如何做到这一点
var jsFileObject;
fileEntry.file(function (file){ 
   jsFileObject = file 
});