FileSystemDirectoryEntry: removeRecursively() メソッド
非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。
非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。
FileSystemDirectoryEntry
インターフェイスの removeRecursively()
メソッドは、ディレクトリーとそのコンテンツをすべて除去し、子孫のファイルとディレクトリーのサブツリー全体を階層的に反復処理します。
単一のファイルや空のディレクトリーを除去するには、FileSystemEntry.remove()
を使用することもできます。
構文
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
を提供する必要があります。
例
directory.removeRecursively(
() => {
/* ディレクトリーは正常に除去された */
},
() => {
/* ディレクトリーの除去中にエラーが発生した */
},
);
ブラウザーの互換性
BCD tables only load in the browser