我正在尝试在Chrome Canary中与HTML5文件系统进行交互的动态界面,但我目前遇到了一个绊脚石。
我使用dirReader.readEntries(function (entries) {
if (!entries.length){
return;
}
for (var i = 0 ; i < entries.length; i++){
$scope.files.push(entries[i]);
}
dirReader.readEntries();
}, errorHandler);
第一次得到它们,这很好。但是如果我创建一个新文件,并再次运行代码,它什么也没有返回。
我想它使用了对文件系统的旧引用或类似的东西,所以我想我需要重新初始化文件系统或目录读取器(这是猜测)?处理这个问题的最好方法是什么?
编辑:获取文件系统的新引用确实有效,但这让我有点呕吐。如果有更好的方法,那就更棒了。
优秀的HTML5rocks文件处理网站
要读取目录的内容,创建DirectoryReader并调用它的readEntries()方法。不能保证目录的所有条目将在对readEntries()的一次调用中返回。这意味着你需要保持调用DirectoryReader.readEntries(),直到没有返回结果为止。
我认为这意味着DirectoryReader
是一个一次性对象。一旦你读了它,你将不会从它得到更多的数据。因此,与其获取新的文件系统引用,不如尝试创建一个新的DirectoryReader
。