chrome.fileSystem

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

Chỉ nền trước

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

Chrome 44 trở lên

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

Chrome 44 trở lên

Thuộc tính

  • volumeId

    chuỗi

  • có thể ghi

    boolean

VolumeListChangedEvent

Chrome 44 trở lên

Thuộc tính

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()

Promise
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ên

    Cá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()

Promise Chrome 44 trở lên
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ố

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (volumes?: Volume[]) => void

    • tập

      Volume[] không bắt buộc

Giá trị trả về

  • Promise<Volume[] | undefined>

    Chrome 117 trở lên

    Cá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()

Promise
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ên

    Cá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()

Promise
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ên

    Cá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()

Promise Chrome 44 trở lên
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ố

  • 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ên

    Cá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 44 trở lên
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ố