【发布时间】:2017-12-16 14:21:10
【问题描述】:
是否可以将FileEntry 转换为标准JavaScript 对象File?
我在文档中找不到任何有意义的东西 https://developer.chrome.com/apps/fileSystem
【问题讨论】:
标签: javascript filesystems google-chrome-app
是否可以将FileEntry 转换为标准JavaScript 对象File?
我在文档中找不到任何有意义的东西 https://developer.chrome.com/apps/fileSystem
【问题讨论】:
标签: javascript filesystems google-chrome-app
FileEntrydocumentation 确实在这里提供了指导:
文件系统 API 的
FileSystemFileEntry接口代表一个 文件系统中的文件。它提供了描述文件的属性 属性,以及创建 File 对象的file()方法 可用于读取文件。
不幸的是,file()method 依赖于回调而不是 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 和浏览器支持可能会发生变化!
【讨论】:
我在谷歌示例https://github.com/GoogleChrome/chrome-app-samples/blob/master/samples/filesystem-access/js/app.js中找到了如何做到这一点
var jsFileObject;
fileEntry.file(function (file){
jsFileObject = file
});
【讨论】:
entry.file(success,error)
jsFileObject。请参阅 xlm 的 answer,了解基于 Promise 的解决方案。