Google chrome extension 使用HTML5和Chrome文件系统API读取目录
我试图显示目录的内容以及每个项目的Google chrome extension 使用HTML5和Chrome文件系统API读取目录,google-chrome-extension,html5-filesystem,Google Chrome Extension,Html5 Filesystem,我试图显示目录的内容以及每个项目的lastModified属性。不幸的是,要获得属性,必须在每个条目上调用.file()方法,这使得整个循环非常麻烦。console.log输出一个数组,据报告该数组中没有项目,但实际上您可以展开它并查看其中填充的所有项目 我在想什么才是正确的父亲。另外,尝试查找entries.sort()方法的API,但找不到任何API 下面的代码是从一个示例中借用的,并根据我的需要进行了调整 fs.root.getDirectory('recent', {create: tr
lastModified
属性。不幸的是,要获得属性,必须在每个条目上调用.file()
方法,这使得整个循环非常麻烦。console.log
输出一个数组,据报告该数组中没有项目,但实际上您可以展开它并查看其中填充的所有项目
我在想什么才是正确的父亲。另外,尝试查找entries.sort()方法的API,但找不到任何API
下面的代码是从一个示例中借用的,并根据我的需要进行了调整
fs.root.getDirectory('recent', {create: true}, function (recentDir) {
var dirReader = recentDir.createReader();
var entries = [];
var readEntries = function () {
dirReader.readEntries(function (results) {
if (!results.length) {
listResults(entries.sort());
} else {
entries = entries.concat(toArray(results));
readEntries();
}
}, fsErrorHandler);
};
readEntries();
function toArray(list) {
return Array.prototype.slice.call(list || [], 0);
}
function listResults(entries) {
var list = [];
entries.forEach(function (entry, i) {
entry.file(function (data) {
list.push(data); // <- async
});
});
console.log(list);
}
});
fs.root.getDirectory('recent',{create:true},函数(recentDir){
var dirReader=recentDir.createReader();
var分录=[];
var readEntries=函数(){
dirReader.readEntries(函数(结果){
如果(!results.length){
listResults(entries.sort());
}否则{
entries=entries.concat(toArray(results));
readEntries();
}
},fsErrorHandler);
};
readEntries();
函数toArray(列表){
返回Array.prototype.slice.call(list | |[],0);
}
函数列表结果(条目){
var列表=[];
entries.forEach(函数(entry,i){
entry.file(函数(数据){
list.push(data);//我建议使用promisify库和async/await.1.条目
声明为数组,因此条目.sort()
是标准数组2.检查结果
的数量是否少于1000,然后直接推送条目.push.apply(条目,结果)
,速度更快,占用内存更少。