FileSystemDirectoryEntry: removeRecursively() メソッド

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

FileSystemDirectoryEntry インターフェイスの removeRecursively() メソッドは、ディレクトリーとそのコンテンツをすべて除去し、子孫のファイルとディレクトリーのサブツリー全体を階層的に反復処理します。

単一のファイルや空のディレクトリーを除去するには、FileSystemEntry.remove() を使用することもできます。

構文

js
removeRecursively(successCallback)
removeRecursively(successCallback, errorCallback)

引数

successCallback

ディレクトリーの削除処理が完了したら呼び出す関数です。コールバックには引数はありません。

errorCallback 省略可

ディレクトリーのサブツリーを除去しようとしてエラーが発生した場合に呼び出される関数です。発生したエラーを説明する FileError を入力として受け取ります。

返値

なし (undefined)。

例外

エラーが発生して errorCallback が呼び出された場合、単一の引数、つまりエラーを記述した FileError オブジェクトが渡されます。FileError.code は、以下のように入力したエラーの型を指定します。

FileError.INVALID_MODIFICATION_ERR

ルートディレクトリーを除去しようとしましたが、これは許可されていません。

FileError.NO_MODIFICATION_ALLOWED_ERR

ファイルシステムの状態が変更を許可していません。

FileError.NOT_FOUND_ERR

FileSystemDirectoryEntry が表すディレクトリーがもう存在しません。

FileError.NOT_READABLE_ERR

ディレクトリーにアクセスできません。他のアプリケーションで使用されているか、オペレーティングシステムレベルでロックされている可能性があります。

FileError.SECURITY_ERR

セキュリティ上の理由でディレクトリーを除去できませんでした。取りうる理由は次の通りです。

  • ディレクトリーやその内容は、ウェブアプリケーションからアクセスするには安全ではないかもしれません。
  • ファイルシステムを呼び出す回数が多すぎます。
  • ユーザーエージェントまたはオペレーティングシステムによって提起される、セキュリティに関する他の懸念。

メモ: 削除できないファイルが 1 つ以上格納されているディレクトリーを削除しようとした場合、またはいくつかのファイルを削除している最中にエラーが発生した場合、いくつかのファイルが削除されないことがあります。これを監視し、処理するために errorCallback を提供する必要があります。

js
directory.removeRecursively(
  () => {
    /* ディレクトリーは正常に除去された */
  },
  () => {
    /* ディレクトリーの除去中にエラーが発生した */
  },
);

ブラウザーの互換性

BCD tables only load in the browser

関連情報