说明
使用 chrome.fileSystemProvider
API 创建可通过 ChromeOS 上的文件管理器访问的文件系统。
权限
fileSystemProvider
可用性
您必须在扩展程序清单中声明“fileSystemProvider”权限和部分,才能使用文件系统提供程序 API。例如:
{
"name": "My extension",
...
"permissions": [
"fileSystemProvider"
],
...
"file_system_provider_capabilities": {
"configurable": true,
"watchable": false,
"multiple_mounts": true,
"source": "network"
},
...
}
必须按如下方式声明 file_system_provider 部分:
configurable
(布尔值) - 可选- 是否支持通过 onConfigureRequested 进行配置。默认值:false。
multiple_mounts
(布尔值) - 可选- 是否支持多个(超过一个)已装载的文件系统。默认值:false。
watchable
(布尔值) - 可选- 是否支持设置监视者和通知更改。默认值:false。
source
(“文件”“设备”或“网络”的枚举) - 必需- 已装载文件系统的数据源。
“文件”应用会使用上述信息来正确呈现相关界面元素。例如,如果 configurable
设置为 true,系统将呈现用于配置音量的菜单项。同样,如果 multiple_mounts
设置为 true
,则“文件”应用将允许通过界面添加多个装载点。如果 watchable
为 false
,则系统会呈现刷新按钮。请注意,如果可能,您应添加对监听器的支持,以便文件系统上的更改可以立即自动反映出来。
概览
文件系统提供程序 API 允许扩展程序支持虚拟文件系统,这些文件系统可在 ChromeOS 的文件管理器中使用。应用场景包括解压缩归档文件和访问云端硬盘以外的云服务中的文件。
装载文件系统
提供扩展程序可以从外部来源(例如远程服务器或 USB 设备)提供文件系统内容,也可以使用本地文件(例如归档文件)作为其输入。
为了编写作为文件处理程序(来源为 "file"
)的文件系统,提供程序必须是打包的应用,因为扩展程序无法使用 onLaunched
事件。
如果来源是网络或设备,则应在调用 onMountRequested 事件时装载文件系统。
文件系统数据的来源 | 入口点 |
---|---|
"file" |
仅适用于打包应用。 |
"device" 或 "network" |
onMountRequested |
配置文件系统
提供的文件系统一旦装载,就可以通过 onConfigureRequested 事件进行配置。对于通过网络提供内容的文件系统,此方法尤其有用,可用于设置适当的凭据。您可以选择是否处理此事件。
生命周期
Chrome 会记住已装载的文件系统,并在重启或重新启动后自动重新装载。因此,一旦文件系统被提供扩展程序装载,它就会一直存在,直到扩展程序被卸载或扩展程序调用 unmount 方法。
类型
AbortRequestedOptions
属性
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
operationRequestId
数值
要中止的请求的 ID。
-
requestId
数值
相应请求的唯一标识符。
Action
属性
-
id
字符串
操作的标识符。对于常见操作,可以是任意字符串或
CommonActionId
。 -
title
字符串(选填)
操作的标题。对于常见操作,可以忽略此属性。
AddWatcherRequestedOptions
属性
-
entryPath
字符串
要观察的条目的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
recursive
布尔值
观察是否应以递归方式包含所有子条目。只能针对目录设为 true。
-
requestId
数值
相应请求的唯一标识符。
Change
属性
-
changeType
条目发生的更改的类型。
-
cloudFileInfoChrome 125 及更高版本
与文件相关的信息(如果文件由云文件系统提供支持)。
-
entryPath
字符串
已更改条目的路径。
ChangeType
在观测到的目录中检测到的更改类型。
枚举
"CHANGED"
"DELETED"
CloseFileRequestedOptions
属性
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
openRequestId
数值
用于打开文件的请求 ID。
-
requestId
数值
相应请求的唯一标识符。
CloudFileInfo
属性
-
versionTag
字符串(选填)
表示文件版本的标记。
CloudIdentifier
属性
-
id
字符串
指定文件/目录的提供商标识符。
-
providerName
字符串
云存储服务提供商的标识符(例如“drive.google.com”)。
CommonActionId
常见操作列表。"SHARE"
用于与他人共享文件。"SAVE_FOR_OFFLINE"
,用于固定(保存以供离线访问)。"OFFLINE_NOT_NECESSARY"
用于通知系统相应文件不再需要存储以供离线访问。由 onGetActionsRequested
和 onExecuteActionRequested
使用。
枚举
"SAVE_FOR_OFFLINE"
"OFFLINE_NOT_NECESSARY"
“分享”图标
ConfigureRequestedOptions
属性
-
fileSystemId
字符串
要配置的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
CopyEntryRequestedOptions
属性
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
-
sourcePath
字符串
要复制的条目的源路径。
-
targetPath
字符串
复制操作的目标路径。
CreateDirectoryRequestedOptions
属性
-
directoryPath
字符串
要创建的目录的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
recursive
布尔值
操作是否为递归操作(仅适用于目录)。
-
requestId
数值
相应请求的唯一标识符。
CreateFileRequestedOptions
属性
-
filePath
字符串
要创建的文件的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
DeleteEntryRequestedOptions
属性
-
entryPath
字符串
要删除的条目的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
recursive
布尔值
操作是否为递归操作(仅适用于目录)。
-
requestId
数值
相应请求的唯一标识符。
EntryMetadata
属性
-
cloudFileInfoChrome 125 及更高版本
用于标识底层云文件系统中的特定文件的信息。如果
options
中请求了此参数,并且相应文件由 Cloud Storage 提供支持,则必须提供此参数。 -
cloudIdentifierChrome 117 及更高版本
相应条目的 Cloud Storage 表示形式。如果
options
中请求了此参数,并且相应文件由云存储提供支持,则必须提供此参数。对于没有云存储空间支持的本地文件,在请求时应为未定义。 -
IsDirectory
布尔值(可选)
如果它是目录,则为 True。如果
options
中有相应要求,则必须提供。 -
mimeType
字符串(选填)
相应条目的 MIME 类型。始终为可选,但如果
options
中有要求,则应提供。 -
modificationTime
日期(可选)
相应条目的上次修改时间。如果
options
中有相应要求,则必须提供。 -
name
字符串(选填)
相应条目的名称(非完整路径名称)。不得包含“/”。对于根,必须为空。如果
options
中有相应要求,则必须提供。 -
size
number 可选
文件大小(以字节为单位)。如果
options
中有相应要求,则必须提供。 -
缩略图
字符串(选填)
缩略图(采用 PNG、JPEG 或 WEBP 格式的数据 URI,大小不超过 32 KB)。可选,但只能在
onGetMetadataRequested
事件明确请求时提供。
ExecuteActionRequestedOptions
属性
-
actionId
字符串
要执行的操作的标识符。
-
entryPaths
字符串[]
Chrome 47 及更高版本要用于相应操作的条目的路径集。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
FileSystemInfo
属性
-
displayName
字符串
文件系统的简单易懂的名称。
-
fileSystemId
字符串
文件系统的标识符。
-
openedFiles
当前已打开文件的列表。
-
openedFilesLimit
数值
一次可以打开的文件数上限。如果为 0,则表示不受限制。
-
supportsNotifyTag
布尔值(可选)
Chrome 45 及更高版本文件系统是否支持用于观察目录的
tag
字段。 -
观看者
Watcher[]
Chrome 45 及更高版本观看者列表。
-
可写入
布尔值
文件系统是否支持可能会更改文件系统内容的操作(例如创建、删除或写入文件)。
GetActionsRequestedOptions
属性
-
entryPaths
字符串[]
Chrome 47 及更高版本操作列表的条目路径列表。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
GetMetadataRequestedOptions
属性
-
cloudFileInfo
布尔值
Chrome 125 及更高版本如果请求
cloudFileInfo
值,则设置为true
。 -
cloudIdentifier
布尔值
Chrome 117 及更高版本如果请求
cloudIdentifier
值,则设置为true
。 -
entryPath
字符串
要提取元数据的条目的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
IsDirectory
布尔值
Chrome 49 及更高版本如果请求
is_directory
值,则设置为true
。 -
mimeType
布尔值
Chrome 49 及更高版本如果请求
mimeType
值,则设置为true
。 -
modificationTime
布尔值
Chrome 49 及更高版本如果请求
modificationTime
值,则设置为true
。 -
name
布尔值
Chrome 49 及更高版本如果请求
name
值,则设置为true
。 -
requestId
数值
相应请求的唯一标识符。
-
size
布尔值
Chrome 49 及更高版本如果请求
size
值,则设置为true
。 -
缩略图
布尔值
如果请求
thumbnail
值,则设置为true
。
MountOptions
属性
-
displayName
字符串
文件系统的简单易懂的名称。
-
fileSystemId
字符串
文件系统的字符串标识符。对于每个扩展程序来说都必须是唯一的。
-
openedFilesLimit
number 可选
一次可以打开的文件数上限。如果未指定或为 0,则表示不受限制。
-
持久性
布尔值(可选)
Chrome 64+框架是否应在下次登录会话时恢复文件系统。默认情况下为 true。
-
supportsNotifyTag
布尔值(可选)
Chrome 45 及更高版本文件系统是否支持观测目录的
tag
字段。 -
可写入
布尔值(可选)
文件系统是否支持可能会更改文件系统内容的操作(例如创建、删除或写入文件)。
MoveEntryRequestedOptions
属性
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
-
sourcePath
字符串
要移至新位置的条目的源路径。
-
targetPath
字符串
复制操作的目标路径。
NotifyOptions
属性
-
changeType
观测到的条目发生的更改类型。如果为 DELETED,则系统会自动从观测到的条目列表中移除观测到的条目。
-
更改
更改 [] 可选
观测目录(包括条目本身)中条目的更改列表
-
fileSystemId
字符串
与相应更改相关的文件系统的标识符。
-
observedPath
字符串
观测到的条目的路径。
-
recursive
布尔值
观测到的条目的模式。
-
标记
字符串(选填)
通知的标记。如果文件系统是使用
supportsNotifyTag
选项装载的,则此权限是必需的。请注意,此标志是必要的,可用于提供有关即使在系统关闭时也已更改的更改的通知。
OpenedFile
属性
-
filePath
字符串
已打开文件的路径。
-
模式
文件是打开以供读取还是写入。
-
openRequestId
数值
供连续读取/写入和关闭请求使用的请求 ID。
OpenFileMode
打开文件的模式。由 onOpenFileRequested
使用。
枚举
“READ”
“WRITE”
OpenFileRequestedOptions
属性
-
filePath
字符串
要打开的文件的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
模式
文件将用于读取还是写入。
-
requestId
数值
将由后续读取/写入和关闭请求使用的请求 ID。
ProviderError
提供扩展程序时,在响应请求时以及在调用 API 方法时发生错误时使用的错误代码。若要成功,必须使用 "OK"
。
枚举
“确定”
"FAILED"
"IN_USE"
“EXISTS”
"NOT_FOUND"
"ACCESS_DENIED"
"TOO_MANY_OPENED"
"NO_MEMORY"
"NO_SPACE"
"NOT_A_DIRECTORY"
“INVALID_OPERATION”
"SECURITY"
“ABORT”
"NOT_A_FILE"
"NOT_EMPTY"
"INVALID_网址"
“IO”
ReadDirectoryRequestedOptions
属性
-
directoryPath
字符串
请求内容的目录的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
IsDirectory
布尔值
Chrome 49 及更高版本如果请求
is_directory
值,则设置为true
。 -
mimeType
布尔值
Chrome 49 及更高版本如果请求
mimeType
值,则设置为true
。 -
modificationTime
布尔值
Chrome 49 及更高版本如果请求
modificationTime
值,则设置为true
。 -
name
布尔值
Chrome 49 及更高版本如果请求
name
值,则设置为true
。 -
requestId
数值
相应请求的唯一标识符。
-
size
布尔值
Chrome 49 及更高版本如果请求
size
值,则设置为true
。 -
缩略图
布尔值
Chrome 49 及更高版本如果请求
thumbnail
值,则设置为true
。
ReadFileRequestedOptions
属性
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
长度
数值
要返回的字节数。
-
offset
数值
开始读取的文件位置(以字节为单位)。
-
openRequestId
数值
用于打开文件的请求 ID。
-
requestId
数值
相应请求的唯一标识符。
RemoveWatcherRequestedOptions
属性
-
entryPath
字符串
被监控条目的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
recursive
布尔值
watcher 的模式。
-
requestId
数值
相应请求的唯一标识符。
TruncateRequestedOptions
属性
-
filePath
字符串
要截断的文件的路径。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
长度
数值
操作完成后要保留的字节数。
-
requestId
数值
相应请求的唯一标识符。
UnmountOptions
属性
-
fileSystemId
字符串
要卸载的文件系统的标识符。
UnmountRequestedOptions
属性
-
fileSystemId
字符串
要卸载的文件系统的标识符。
-
requestId
数值
相应请求的唯一标识符。
Watcher
属性
-
entryPath
字符串
被观察条目的路径。
-
lastTag
字符串(选填)
观看者上次收到通知时使用的标记。
-
recursive
布尔值
观看是否应以递归方式包含所有子条目。只能针对目录设为 true。
WriteFileRequestedOptions
属性
-
数据
ArrayBuffer
要写入文件的字节缓冲区。
-
fileSystemId
字符串
与此操作相关的文件系统的标识符。
-
offset
数值
开始写入字节的文件位置(以字节为单位)。
-
openRequestId
数值
用于打开文件的请求 ID。
-
requestId
数值
相应请求的唯一标识符。
方法
get()
chrome.fileSystemProvider.get(
fileSystemId: string,
): Promise<FileSystemInfo>
返回有关具有所传递 fileSystemId
的文件系统的信息。
参数
-
fileSystemId
字符串
返回
-
Promise<FileSystemInfo>
Chrome 96 及更高版本
返回
-
Promise<FileSystemInfo[]>
Chrome 96 及更高版本
mount()
chrome.fileSystemProvider.mount(
options: MountOptions,
): Promise<void>
使用给定的 fileSystemId
和 displayName
装载文件系统。displayName
将显示在“文件”应用的左侧面板中。displayName
可以包含任何字符(包括“/”),但不能是空字符串。displayName
必须具有描述性,但不一定必须是唯一的。fileSystemId
不得为空字符串。
根据要装载的文件系统的类型,必须相应地设置 source
选项。
如果出现错误,系统会使用相应的错误代码设置 runtime.lastError
。
参数
-
选项
返回
-
Promise<void>
Chrome 96 及更高版本
notify()
chrome.fileSystemProvider.notify(
options: NotifyOptions,
): Promise<void>
在 recursive
模式下,通知有关所监控目录(位于 observedPath
)中的更改。如果文件系统以 supportsNotifyTag
挂载,则必须提供 tag
,并且始终报告自上次通知以来的所有更改,即使系统已关闭。可以使用 getAll
获取最后一个标记。
如需使用,必须将 file_system_provider.notify
清单选项设置为 true。
tag
的值可以是每次调用都唯一的任何字符串,因此可以识别上次注册的通知。例如,如果提供扩展服务在重新启动后启动,并且上次注册的通知的标记等于“123”,则它应针对自标记为“123”的更改以来发生的所有更改调用 notify
。不能是空字符串。
并非所有提供方都能提供标记,但如果文件系统有更改日志,则标记可以是更改编号或修订版本号。
请注意,如果移除了父目录,则所有后代条目也会一并移除,并且如果这些条目受到监控,则必须将此事实告知 API。此外,如果某个目录被重命名,则所有后代条目实际上都会被移除,因为它们在原始路径下不再有条目。
如果出现错误,系统会为 runtime.lastError
设置相应的错误代码。
参数
返回
-
Promise<void>
Chrome 96 及更高版本
unmount()
chrome.fileSystemProvider.unmount(
options: UnmountOptions,
): Promise<void>
卸载具有指定 fileSystemId
的文件系统。必须在调用 onUnmountRequested
之后调用。此外,提供扩展程序可以决定在未请求的情况下执行卸载(例如,在连接丢失或出现文件错误时)。
如果出现错误,系统会使用相应的错误代码设置 runtime.lastError
。
参数
返回
-
Promise<void>
Chrome 96 及更高版本
事件
onAbortRequested
chrome.fileSystemProvider.onAbortRequested.addListener(
callback: function,
)
当请求使用 operationRequestId
中止操作时引发。必须立即停止使用 operationRequestId
执行的操作,并执行此中止请求的 successCallback
。如果中止失败,则必须调用 errorCallback
。请注意,不得调用已中止操作的回调,因为这些回调会被忽略。即使调用了 errorCallback
,请求也可能会被强制中止。
参数
-
callback
函数
callback
参数如下所示:(options: AbortRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onAddWatcherRequested
chrome.fileSystemProvider.onAddWatcherRequested.addListener(
callback: function,
)
在请求设置新的目录监听器时引发。如果发生错误,则必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: AddWatcherRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onCloseFileRequested
chrome.fileSystemProvider.onCloseFileRequested.addListener(
callback: function,
)
当请求关闭之前使用 openRequestId
打开的文件时引发。
参数
-
callback
函数
callback
参数如下所示:(options: CloseFileRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onConfigureRequested
chrome.fileSystemProvider.onConfigureRequested.addListener(
callback: function,
)
在请求显示 fileSystemId
的配置对话框时引发。如果已处理,则必须将 file_system_provider.configurable
清单选项设置为 true。
参数
-
callback
函数
callback
参数如下所示:(options: ConfigureRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onCopyEntryRequested
chrome.fileSystemProvider.onCopyEntryRequested.addListener(
callback: function,
)
在请求复制条目(如果是目录,则以递归方式复制)时引发。如果发生错误,则必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: CopyEntryRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onCreateDirectoryRequested
chrome.fileSystemProvider.onCreateDirectoryRequested.addListener(
callback: function,
)
在请求创建目录时引发。如果目标目录已存在,则操作必须因 EXISTS 错误而失败。如果 recursive
为 true,则必须创建目录路径中所有缺失的目录。
参数
-
callback
函数
callback
参数如下所示:(options: CreateDirectoryRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onCreateFileRequested
chrome.fileSystemProvider.onCreateFileRequested.addListener(
callback: function,
)
在请求创建文件时引发。如果该文件已存在,则必须使用 "EXISTS"
错误代码调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: CreateFileRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onDeleteEntryRequested
chrome.fileSystemProvider.onDeleteEntryRequested.addListener(
callback: function,
)
在请求删除条目时引发。如果 recursive
为 true,且相应条目是目录,则必须以递归方式删除其中的所有条目。
参数
-
callback
函数
callback
参数如下所示:(options: DeleteEntryRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onExecuteActionRequested
chrome.fileSystemProvider.onExecuteActionRequested.addListener(
callback: function,
)
当请求对一组文件或目录执行操作时引发。操作完成后,必须调用 successCallback
。如果发生错误,必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: ExecuteActionRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onGetActionsRequested
chrome.fileSystemProvider.onGetActionsRequested.addListener(
callback: function,
)
当请求获取 entryPaths
中一组文件或目录的操作列表时引发。返回的所有操作都必须适用于每个条目。如果没有此类操作,则应返回一个空数组。必须通过 successCallback
调用返回操作。如果出现错误,必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: GetActionsRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:(actions: Action[]) => void
-
操作
操作 []
-
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onGetMetadataRequested
chrome.fileSystemProvider.onGetMetadataRequested.addListener(
callback: function,
)
当请求 entryPath
处的文件或目录的元数据时引发。元数据必须通过 successCallback
调用返回。如果出现错误,必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: GetMetadataRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:(metadata: EntryMetadata) => void
-
元数据
-
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onMountRequested
chrome.fileSystemProvider.onMountRequested.addListener(
callback: function,
)
在请求显示用于装载新文件系统的对话框时引发。如果扩展程序/应用是文件处理程序,则不应处理此事件。应处理 app.runtime.onLaunched
,以便在打开文件时装载新的文件系统。对于多个装载,必须将 file_system_provider.multiple_mounts
清单选项设置为 true。
参数
-
callback
函数
callback
参数如下所示:(successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
-
onMoveEntryRequested
chrome.fileSystemProvider.onMoveEntryRequested.addListener(
callback: function,
)
在请求移动条目(如果是目录,则以递归方式移动)时引发。如果发生错误,则必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: MoveEntryRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onOpenFileRequested
chrome.fileSystemProvider.onOpenFileRequested.addListener(
callback: function,
)
当请求打开 filePath
中的文件时引发。如果文件不存在,则操作必须失败。可以使用 MountOptions
指定一次打开的文件数上限。
参数
-
callback
函数
callback
参数如下所示:(options: OpenFileRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:(metadata?: EntryMetadata) => void
-
元数据
-
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onReadDirectoryRequested
chrome.fileSystemProvider.onReadDirectoryRequested.addListener(
callback: function,
)
当请求 directoryPath
处目录的内容时引发。必须通过多次调用 successCallback
来分块返回结果。如果出现错误,必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: ReadDirectoryRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:(entries: EntryMetadata[], hasMore: boolean) => void
-
entries
-
hasMore
布尔值
-
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onReadFileRequested
chrome.fileSystemProvider.onReadFileRequested.addListener(
callback: function,
)
当请求读取之前使用 openRequestId
打开的文件的内容时引发。必须通过多次调用 successCallback
来分块返回结果。如果出现错误,必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: ReadFileRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:(data: ArrayBuffer, hasMore: boolean) => void
-
数据
ArrayBuffer
-
hasMore
布尔值
-
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onRemoveWatcherRequested
chrome.fileSystemProvider.onRemoveWatcherRequested.addListener(
callback: function,
)
当应移除监听器时引发。如果发生错误,则必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: RemoveWatcherRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onTruncateRequested
chrome.fileSystemProvider.onTruncateRequested.addListener(
callback: function,
)
在请求将文件截断为所需长度时引发。如果发生错误,则必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: TruncateRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onUnmountRequested
chrome.fileSystemProvider.onUnmountRequested.addListener(
callback: function,
)
当请求卸载具有 fileSystemId
标识符的文件系统时引发。在响应中,unmount
API 方法必须与 successCallback
一起调用。如果无法卸载(例如,由于有待处理的操作),则必须调用 errorCallback
。
参数
-
callback
函数
callback
参数如下所示:(options: UnmountRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void
onWriteFileRequested
chrome.fileSystemProvider.onWriteFileRequested.addListener(
callback: function,
)
当请求将内容写入之前使用 openRequestId
打开的文件时引发。
参数
-
callback
函数
callback
参数如下所示:(options: WriteFileRequestedOptions, successCallback: function, errorCallback: function) => void
-
successCallback
函数
successCallback
参数如下所示:() => void
-
errorCallback
函数
errorCallback
参数如下所示:(error: ProviderError) => void