1

我在 Chrome 扩展中使用 HTML5 FileSystem API。

有一个不太可能(但可能)的情况:

  1. 使用创建文件fileWriter.write()
  2. 用户导航到他们的 Chrome 用户数据文件夹 > 文件系统文件夹,并删除创建的文件(使用他们的操作系统,而不是使用 FileSystem API)
  3. 将来getFile()对该文件的所有调用都会FileError.NOT_FOUND_ERR在错误处理程序中触发。

似乎如果在 FileSystem API 之外删除getFile()文件,该文件总是会出错,这会阻止任何成功回调函数工作,这意味着我不能使用fileEntry.remove(),也不能fileEntry.createWriter()创建同名的新文件。

是否有其他方法可以从文件系统的逻辑索引中删除文件条目?

4

1 回答 1

1

Chrome 应用程序/扩展程序在 Windows 中有一个奇怪的行为。事实是,如果您从应用程序的文件系统目录中手动删除该文件,您将无法创建一个具有相同名称的新文件。

现在唯一的解决方法是在第一次调用您的应用程序时创建某种主目录哈希。然后您应该将其名称写入(例如)本地存储并将您的文件写入此目录。您的哈希必须足够独特。在我的情况下,它是当前日期对象时间戳。因此,当用户再次删除并安装您的应用程序/扩展程序时,他们将不会遇到此问题。

这仅适用于 Windows 系统。Linux OS(当然还有 ChromeOS)没有这个 bug。

于 2011-08-17T12:03:37.840 回答