FileSystemDirectoryEntry: removeRecursively() 方法

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

FileSystemDirectoryEntry 介面的 removeRecursively() 方法會遞迴地刪除目錄及其所有內容,遍歷其整個子樹中的所有後代檔案和目錄。

要刪除單個檔案或空目錄,您也可以使用 FileSystemEntry.remove()

語法

js
removeRecursively(successCallback)
removeRecursively(successCallback, errorCallback)

引數

successCallback

在目錄刪除過程完成後呼叫的函式。該回調函式沒有引數。

errorCallback 可選

在嘗試刪除目錄子樹時發生錯誤時呼叫的函式。接收一個 DOMException 作為輸入,該異常描述了發生的錯誤。

返回值

無(undefined)。

異常

如果發生錯誤並且指定了 errorCallback,則會呼叫它,並傳入一個引數:一個描述錯誤的 DOMException 物件。 DOMException.code 指定了發生的錯誤型別,如下所示:

DOMException.INVALID_MODIFICATION_ERR

嘗試刪除根目錄;這是不允許的。

DOMException.NO_MODIFICATION_ALLOWED_ERR

檔案系統的狀態不允許修改。

DOMException.NOT_FOUND_ERR

FileSystemDirectoryEntry 表示的目錄已不存在。

DOMException.NOT_READABLE_ERR

目錄不可訪問;可能它正在被另一個應用程式使用,或者在作業系統級別被鎖定。

DOMException.SECURITY_ERR

出於安全原因,無法刪除該目錄。可能的原因包括:

  • 該目錄和/或其內容可能不適合從 Web 應用程式訪問。
  • 正在進行過多的檔案系統呼叫。
  • 使用者代理或作業系統提出的其他安全問題。

注意: 如果您嘗試刪除一個包含一個或多個無法刪除的檔案,或者在刪除多個檔案過程中發生錯誤,某些檔案可能不會被刪除。您應該提供一個 errorCallback 來監視並處理這種情況,也許可以嘗試重新刪除。

示例

js
directory.removeRecursively(
  () => {
    /* The directory was removed successfully */
  },
  () => {
    /* an error occurred while removing the directory */
  },
);

瀏覽器相容性

另見