File and Directory Entries API

檔案和目錄條目 API 提供了一種方式來處理使用者透過表單輸入或拖放操作提供的目錄和檔案列表。它是 File API 的一個更高階的版本,File API 允許你處理單個檔案。它最初旨在支援一個完整的虛擬檔案系統,但現在只支援對使用者提供的資料進行讀取操作。

有關此 API、File System APIFile API 之間的比較,請參閱 與其它檔案相關 API 的關係

訪問檔案系統

在當前規範草案中,有兩種方式可以訪問檔案系統。

History

最初的檔案系統 API 是為了讓瀏覽器能夠支援訪問使用者儲存裝置上的沙盒化虛擬檔案系統而建立的。標準化該規範的工作早在 2012 年就已停止,但到那時,Google Chrome 已經包含了該 API 的自有實現。隨著時間的推移,許多流行的網站和 Web 應用程式開始使用它,而且通常不提供任何回退到標準 API 的方法,甚至在使用前也不檢查 API 是否可用。Mozilla 則選擇實現其他可以解決許多相同問題的 API,例如 IndexedDB;有關更多見解,請參閱博文 Why no FileSystem API in Firefox?

因此,許多流行的網站在 Chrome 以外的瀏覽器上無法正常工作。為了解決這個問題,Google API 中能夠達成共識的功能被標準化為檔案和目錄條目 API,然後在其他瀏覽器中實現。

介面

檔案和目錄條目 API 包含以下介面

FileSystem

表示一個檔案系統。

FileSystemEntry

表示檔案系統中單個條目的基本介面。它由表示檔案或目錄的其他介面實現。

FileSystemFileEntry

表示檔案系統中的單個檔案。

FileSystemDirectoryEntry

表示檔案系統中的單個目錄。

FileSystemDirectoryReader

透過呼叫 FileSystemDirectoryEntry.createReader() 建立,此介面提供了讀取目錄內容的功能。

其他介面的擴充套件

DataTransferItem.webkitGetAsEntry()

返回一個基於 FileSystemEntry 的物件,表示選定檔案在其檔案系統中的條目。這通常是 FileSystemFileEntryFileSystemDirectoryEntry 物件。

File.webkitRelativePath

返回 File URL 的相對路徑。

HTMLInputElement.webkitdirectory

一個布林值,表示 webkitdirectory 屬性。如果為 true,則檔案系統選擇器介面僅接受目錄而不是檔案。

HTMLInputElement.webkitEntries

描述當前選定的檔案或目錄。

規範

規範
File and Directory Entries API
# api-domfilesystem

瀏覽器相容性

另見