1

Chrome 拡張機能で HTML5 FileSystem API を使用しています。

ありそうもない (しかし可能性のある) シナリオがあります。

  1. を使用してファイルが作成されます。fileWriter.write()
  2. ユーザーは自分の Chrome User Data フォルダー > File System フォルダーに移動し、作成されたファイルを削除します ( FileSystem APIではなく、オペレーティング システムを使用します)。
  3. このファイルに対する今後のすべての呼び出しは、エラー ハンドラでgetFile()トリガーされます。FileError.NOT_FOUND_ERR

ファイルが FileSystem API の外で削除された場合、getFile()そのファイルに対して常にエラーが発生し、成功したコールバック関数が機能しなくなります。つまり、 を使用したり、同じ名前で新しいファイルを作成しfileEntry.remove()たりすることはできません。fileEntry.createWriter()

FileSystem のロジック インデックスからファイル エントリを削除する別の方法はありますか?

4

1 に答える 1

1

Chrome アプリ/拡張機能の Windows で奇妙な動作があります。実際には、アプリのファイル システム ディレクトリからファイルを手動で削除すると、同じ名前の新しいファイルを作成できなくなります。

現時点での唯一の回避策は、アプリが初めて呼び出されたときに何らかのホーム ディレクトリ ハッシュを作成することです。次に、その名前を(たとえば)ローカルストレージに書き込み、ファイルをこのディレクトリに書き込む必要があります。ハッシュは十分に一意である必要があります。私の場合、それは現在の日付オブジェクトのタイムスタンプです。そのため、ユーザーがアプリや拡張機能を削除して再度インストールしても、この問題に直面することはありません。

これは、Windows システムのみを指します。Linux OS (そしてもちろん ChromeOS) にはこのバグはありません。

于 2011-08-17T12:03:37.840 に答える