Mô tả
Sử dụng API chrome.fileSystem
để tạo, đọc, điều hướng và ghi vào hệ thống tệp cục bộ của người dùng. Với API này, Ứng dụng Chrome có thể đọc và ghi vào một vị trí do người dùng chọn. Ví dụ: một ứng dụng trình chỉnh sửa văn bản có thể dùng API này để đọc và ghi tài liệu cục bộ. Mọi lỗi đều được thông báo qua chrome.runtime.lastError.
Quyền
fileSystem
Phạm vi cung cấp
Loại
AcceptOption
Thuộc tính
-
mô tả
chuỗi không bắt buộc
Đây là nội dung mô tả bằng văn bản không bắt buộc cho lựa chọn này. Nếu không có, nội dung mô tả sẽ được tạo tự động; thường chứa danh sách mở rộng các tiện ích hợp lệ (ví dụ: "text/html" có thể mở rộng thành "*.html, *.htm").
-
tiện ích
string[] không bắt buộc
Các đuôi tệp được chấp nhận, ví dụ: "jpg", "gif", "crx".
-
mimeTypes
string[] không bắt buộc
Các loại MIME cần chấp nhận, ví dụ: "image/jpeg" hoặc "audio/*". Một trong các mimeType hoặc extension phải chứa ít nhất một phần tử hợp lệ.
ChooseEntryOptions
Thuộc tính
-
chấp nhận
AcceptOption[] không bắt buộc
Danh sách tuỳ chọn chấp nhận (không bắt buộc) cho trình mở tệp này. Mỗi lựa chọn sẽ được trình bày dưới dạng một nhóm riêng biệt cho người dùng cuối.
-
acceptsAllTypes
boolean không bắt buộc
Có chấp nhận tất cả các loại tệp hay không, ngoài các lựa chọn được chỉ định trong đối số chấp nhận. Giá trị mặc định là "true". Nếu bạn không đặt trường accepts hoặc trường này không chứa mục nhập hợp lệ nào, thì trường này sẽ luôn được đặt lại thành true.
-
acceptsMultiple
boolean không bắt buộc
Có chấp nhận nhiều tệp hay không. Chế độ này chỉ được hỗ trợ cho openFile và openWritableFile. Lệnh gọi lại cho chooseEntry sẽ được gọi bằng danh sách các mục nếu bạn đặt giá trị này thành true. Nếu không, phương thức này sẽ được gọi bằng một Entry duy nhất.
-
suggestedName
chuỗi không bắt buộc
Tên tệp được đề xuất sẽ được trình bày cho người dùng dưới dạng tên mặc định để đọc hoặc ghi. Việc này là không bắt buộc.
-
loại
ChooseEntryType không bắt buộc
Loại lời nhắc sẽ xuất hiện. Giá trị mặc định là "openFile".
ChooseEntryType
Enum
"openFile"
Nhắc người dùng mở một tệp hiện có và trả về một FileEntry khi thành công. Từ Chrome 31 trở đi, FileEntry sẽ có thể ghi nếu ứng dụng có quyền "ghi" trong "fileSystem"; nếu không, FileEntry sẽ chỉ có thể đọc.
"openWritableFile"
Nhắc người dùng mở một tệp hiện có và trả về một FileEntry có thể ghi khi thành công. Các lệnh gọi sử dụng loại này sẽ gặp lỗi thời gian chạy nếu ứng dụng không có quyền "ghi" trong "fileSystem".
"saveFile"
Nhắc người dùng mở một tệp hiện có hoặc một tệp mới và trả về một FileEntry có thể ghi khi thành công. Các lệnh gọi sử dụng loại này sẽ gặp lỗi thời gian chạy nếu ứng dụng không có quyền "ghi" trong "fileSystem".
"openDirectory"
Nhắc người dùng mở một thư mục và trả về một DirectoryEntry khi thành công. Các lệnh gọi sử dụng loại này sẽ gặp lỗi thời gian chạy nếu ứng dụng không có quyền "thư mục" trong "fileSystem". Nếu ứng dụng có quyền "ghi" trong "fileSystem", thì DirectoryEntry được trả về sẽ có thể ghi; nếu không, ứng dụng sẽ chỉ đọc. Tính năng mới trong Chrome 31.
RequestFileSystemOptions
Thuộc tính
-
volumeId
chuỗi
Mã nhận dạng của ổ đĩa được yêu cầu.
-
có thể ghi
boolean không bắt buộc
Hệ thống tệp được yêu cầu có thể ghi hay không. Theo mặc định, chế độ này là chỉ đọc.
Volume
Thuộc tính
-
volumeId
chuỗi
-
có thể ghi
boolean
VolumeListChangedEvent
Thuộc tính
-
tập
Phương thức
chooseEntry()
chrome.fileSystem.chooseEntry(
options?: ChooseEntryOptions,
callback: function,
): void
Yêu cầu người dùng chọn một tệp hoặc thư mục.
Thông số
-
tùy chọn
ChooseEntryOptions không bắt buộc
-
callback
hàm
Tham số
callback
có dạng như sau:(entry?: Entry, fileEntries?: FileEntry[]) => void
-
entry
Mục nhập không bắt buộc
-
fileEntries
FileEntry[] không bắt buộc
-
getDisplayPath()
chrome.fileSystem.getDisplayPath(
entry: Entry,
callback?: function,
): Promise<string>
Lấy đường dẫn hiển thị của một đối tượng Entry. Đường dẫn hiển thị dựa trên đường dẫn đầy đủ của tệp hoặc thư mục trên hệ thống tệp cục bộ, nhưng có thể được điều chỉnh để dễ đọc hơn cho mục đích hiển thị.
Thông số
-
entry
Mục nhập
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(displayPath: string) => void
-
displayPath
chuỗi
-
Giá trị trả về
-
Promise<string>
Chrome 117 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getVolumeList()
chrome.fileSystem.getVolumeList(
callback?: function,
): Promise<Volume[] | undefined>
Trả về danh sách các tập có sẵn cho requestFileSystem()
. Bạn phải có quyền "fileSystem": {"requestFileSystem"}
trong tệp kê khai. Chỉ dành cho các ứng dụng kiosk chạy trong phiên kiosk. Trong trường hợp xảy ra lỗi, volumes
sẽ không xác định và chrome.runtime.lastError
sẽ được đặt.
Thông số
Giá trị trả về
-
Promise<Volume[] | undefined>
Chrome 117 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getWritableEntry()
chrome.fileSystem.getWritableEntry(
entry: Entry,
callback: function,
): void
Nhận một Entry có thể ghi từ một Entry khác. Lệnh gọi này sẽ không thành công và gặp lỗi thời gian chạy nếu ứng dụng không có quyền "ghi" trong "fileSystem". Nếu mục nhập là DirectoryEntry, lệnh gọi này sẽ không thành công nếu ứng dụng không có quyền "directory" trong "fileSystem".
Thông số
-
entry
Mục nhập
-
callback
hàm
Tham số
callback
có dạng như sau:(entry: Entry) => void
-
entry
Mục nhập
-
isRestorable()
chrome.fileSystem.isRestorable(
id: string,
callback?: function,
): Promise<boolean>
Trả về việc ứng dụng có quyền khôi phục mục nhập có mã nhận dạng đã cho hay không.
Thông số
-
id
chuỗi
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(isRestorable: boolean) => void
-
isRestorable
boolean
-
Giá trị trả về
-
Promise<boolean>
Chrome 117 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
isWritableEntry()
chrome.fileSystem.isWritableEntry(
entry: Entry,
callback?: function,
): Promise<boolean>
Cho biết Entry này có thể ghi hay không.
Thông số
-
entry
Mục nhập
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(isWritable: boolean) => void
-
isWritable
boolean
-
Giá trị trả về
-
Promise<boolean>
Chrome 117 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
requestFileSystem()
chrome.fileSystem.requestFileSystem(
options: RequestFileSystemOptions,
callback?: function,
): Promise<FileSystem | undefined>
Yêu cầu quyền truy cập vào hệ thống tệp cho một ổ đĩa được biểu thị bằng options.volumeId
. Nếu options.writable
được đặt thành true, thì hệ thống tệp sẽ có thể ghi. Nếu không, tệp sẽ ở chế độ chỉ đọc. Tuỳ chọn writable
yêu cầu quyền "fileSystem": {"write"}
trong tệp kê khai. Chỉ dành cho các ứng dụng kiosk chạy trong phiên kiosk. Đối với chế độ kiosk khởi chạy theo cách thủ công, một hộp thoại xác nhận sẽ xuất hiện ở trên cùng của cửa sổ ứng dụng đang hoạt động. Trong trường hợp xảy ra lỗi, fileSystem
sẽ không xác định và chrome.runtime.lastError
sẽ được đặt.
Thông số
-
tùy chọn
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(fileSystem?: FileSystem) => void
-
fileSystem
FileSystem không bắt buộc
-
Giá trị trả về
-
Promise<FileSystem | undefined>
Chrome 117 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
restoreEntry()
chrome.fileSystem.restoreEntry(
id: string,
callback: function,
): void
Trả về mục nhập tệp có mã nhận dạng đã cho nếu có thể khôi phục. Nếu không, lệnh gọi này sẽ không thành công do gặp lỗi thời gian chạy.
Thông số
-
id
chuỗi
-
callback
hàm
Tham số
callback
có dạng như sau:(entry: Entry) => void
-
entry
Mục nhập
-
retainEntry()
chrome.fileSystem.retainEntry(
entry: Entry,
): string
Trả về một mã nhận dạng có thể được truyền đến restoreEntry để lấy lại quyền truy cập vào một mục tệp nhất định. Hệ thống chỉ giữ lại 500 mục được dùng gần đây nhất, trong đó các lệnh gọi để giữ lại mục và khôi phục mục được tính là lượt sử dụng. Nếu ứng dụng có quyền "retainEntries" trong "fileSystem", thì các mục sẽ được giữ lại vô thời hạn. Nếu không, các mục sẽ chỉ được giữ lại trong khi ứng dụng đang chạy và trong các lần khởi động lại.
Thông số
-
entry
Mục nhập
Giá trị trả về
-
chuỗi
Sự kiện
onVolumeListChanged
chrome.fileSystem.onVolumeListChanged.addListener(
callback: function,
)
Được gọi khi danh sách các âm lượng có sẵn thay đổi.
Thông số
-
callback
hàm
Tham số
callback
có dạng như sau:(event: VolumeListChangedEvent) => void
-
event
-