我在Chrome扩展程序中使用HTML5 FileSystem API。
有一种不太可能(但可能)的情况:
fileWriter.write()
getFile()
的所有未来调用都会在错误处理程序中触发FileError.NOT_FOUND_ERR
。似乎如果文件在FileSystem API之外被删除,getFile()
总是会出现该文件的错误,这会阻止任何成功的回调函数工作,这意味着我不能使用fileEntry.remove()
,也不能fileEntry.createWriter()
创建一个具有相同名称的新文件。
是否有另一种方法可以从FileSystem的逻辑索引中删除文件条目?
答案 0 :(得分:1)
Windows中存在针对Chrome应用/扩展程序的奇怪行为。事实是,如果您从应用程序的文件系统目录中手动删除文件,您将无法创建具有相同名称的新文件。
现在唯一的解决方法是在第一次调用app时创建某种主目录哈希。然后你应该将它的名字写入(比如说)Local Storage并将你的文件写入这个目录。您的哈希必须足够独特。在我的例子中,它是当前日期对象时间戳。因此,当用户再次删除并安装您的应用/扩展程序时,他们将不会遇到此问题。
这仅指Windows系统。 Linux OS(当然还有ChromeOS)没有这个bug。