diff --git a/files/zh-cn/web/api/file_system_api/index.md b/files/zh-cn/web/api/file_system_api/index.md index 2e8e3033fa307d..5c51ba3dfcaa9d 100644 --- a/files/zh-cn/web/api/file_system_api/index.md +++ b/files/zh-cn/web/api/file_system_api/index.md @@ -1,11 +1,13 @@ --- title: 文件系统 API slug: Web/API/File_System_API +l10n: + sourceCommit: 2b6bddfe281c0179fbde9c870f9de7c0dc3829e8 --- -{{securecontext_header}}{{DefaultAPISidebar("File System API")}} +{{securecontext_header}}{{DefaultAPISidebar("File System API")}}{{AvailableInWorkers}} -文件系统 API——以及通过[文件系统访问 API](https://wicg.github.io/file-system-access/)提供的扩展来访问设备文件系统中的文件——允许使用文件读写以及文件管理功能。 +**文件系统 API**(File System API)——以及通过[**文件系统访问 API**(File System Access API)](https://wicg.github.io/file-system-access/)提供的扩展来访问设备文件系统中的文件——允许使用文件读写以及文件管理功能。 ## 概念与用法 @@ -40,15 +42,28 @@ slug: Web/API/File_System_API ## 接口 - {{domxref("FileSystemHandle")}} - - : **`FileSystemHandle`** 接口的对象代表一个条目。多个句柄可以指代同一个条目。大多数情况你都不会直接用到 `FileSystemHandle`,而是会用到它的两个子接口 {{domxref('FileSystemFileHandle')}} 和 {{domxref('FileSystemDirectoryHandle')}}。 + - : 代表文件或目录条目的对象。多个句柄可以指代同一个条目。大多数情况你都不会直接用到 `FileSystemHandle`,而是会用到它的子接口 {{domxref('FileSystemFileHandle')}} 和 {{domxref('FileSystemDirectoryHandle')}}。 - {{domxref("FileSystemFileHandle")}} - : 提供一个文件系统条目的句柄。 - {{domxref("FileSystemDirectoryHandle")}} - : 提供一个文件系统目录的句柄。 - {{domxref("FileSystemSyncAccessHandle")}} - - : 提供一个文件系统条目的同步句柄,用于在磁盘上原地操作单个文件。其在文件读写上的同步特性可在异步操作开销较大的情景中使关键方法拥有更优秀的性能,例如 [WebAssembly](/zh-CN/docs/WebAssembly)。此类只能在专用于操作[源私有文件系统](#源私有文件系统)上的文件的 [Web Worker](/zh-CN/docs/Web/API/Web_Workers_API) 中访问。 + - : 提供一个文件系统条目的同步句柄,用于在磁盘上原地操作单个文件。其在文件读写上的同步特性可在异步操作开销较大的情景中使关键方法拥有更优秀的性能,例如 [WebAssembly](/zh-CN/docs/WebAssembly)。此类只能在专用于操作[源私有文件系统](#源私有文件系统)上的文件的专用 [Web Worker](/zh-CN/docs/Web/API/Web_Workers_API) 中访问。 - {{domxref("FileSystemWritableFileStream")}} - - : 属于 {{domxref('WritableStream')}} 对象,附加了便于操作磁盘上单个文件的方法。 + - : 一个附加了便于操作磁盘上单个文件的方法的 {{domxref('WritableStream')}} 对象。 + +### 其他接口的扩展 + +- {{domxref("Window.showDirectoryPicker()")}} + - : 显示允许用户选择目录的目录选择器。 +- {{domxref("Window.showOpenFilePicker()")}} + - : 显示允许用户选择一个或多个文件的文件选择器。 +- {{domxref("Window.showSaveFilePicker()")}} + - : 显示允许用户保存文件的文件选择器。 +- {{domxref("DataTransferItem.getAsFileSystemHandle()")}} + - : 如果拖动的项目是文件,则返回 {{domxref('FileSystemFileHandle')}};如果拖动的项目是目录,则返回 {{domxref('FileSystemDirectoryHandle')}}。 +- {{domxref("StorageManager.getDirectory()")}} + - : 用于获取对 {{domxref("FileSystemDirectoryHandle")}} 对象的引用,该对象允许访问存储在[源私有文件系统](/zh-CN/docs/Web/API/File_System_API/Origin_private_file_system)中的目录及其内容。返回一个由 {{domxref("FileSystemDirectoryHandle")}} 对象兑现的 {{jsxref('Promise')}}。 ## 示例 @@ -97,7 +112,7 @@ async function getTheFile() { ```js const dirName = "directoryToGetName"; -// 假设我们已经有一个目录句柄:'currentDirHandle' +// 假设我们已经有一个目录句柄:“currentDirHandle” const subDir = currentDirHandle.getDirectoryHandle(dirName, { create: true }); ``` @@ -220,4 +235,5 @@ onmessage = async (e) => { ## 参见 -- [文件系统访问 API:简化本地文件访问](https://developer.chrome.com/articles/file-system-access/) +- [文件系统访问 API:简化本地文件访问](https://developer.chrome.com/docs/capabilities/web-apis/file-system-access) +- [源私有文件系统](https://web.dev/articles/origin-private-file-system) diff --git a/files/zh-cn/web/api/file_system_api/origin_private_file_system/index.md b/files/zh-cn/web/api/file_system_api/origin_private_file_system/index.md index c9e3b2623c66d3..2cbf6d63779891 100644 --- a/files/zh-cn/web/api/file_system_api/origin_private_file_system/index.md +++ b/files/zh-cn/web/api/file_system_api/origin_private_file_system/index.md @@ -1,18 +1,20 @@ --- title: 源私有文件系统 slug: Web/API/File_System_API/Origin_private_file_system +l10n: + sourceCommit: 2b6bddfe281c0179fbde9c870f9de7c0dc3829e8 --- -{{securecontext_header}}{{DefaultAPISidebar("File System API")}} +{{securecontext_header}}{{DefaultAPISidebar("File System API")}}{{AvailableInWorkers}} -源私有文件系统(OPFS)是作为[文件系统 API](/zh-CN/docs/Web/API/File_System_API) 的一部分提供的一个存储端点。它是页面所属的源专用的,并且不像常规文件系统那样对用户可见。它提供了对一种特殊类型文件的访问能力,这种文件经过高度性能优化,并提供对其内容的原地写入访问特性。 +**源私有文件系统**(OPFS)是作为[文件系统 API](/zh-CN/docs/Web/API/File_System_API) 的一部分提供的一个存储端点。它是页面所属的源专用的,并且不像常规文件系统那样对用户可见。它提供了对一种特殊类型文件的访问能力,这种文件经过高度性能优化,并提供对其内容的原地写入访问特性。 -## 使用文件系统 API 处理文件 +## 使用文件系统访问 API 处理文件 扩展自[文件系统 API](/zh-CN/docs/Web/API/File_System_API) 的[文件系统访问 API](https://wicg.github.io/file-system-access/) 使用选择器提供了对文件的访问能力。例如: 1. {{domxref("Window.showOpenFilePicker()")}} 允许用户选择一个文件用于访问,文件将作为结果以一个 {{domxref("FileSystemFileHandle")}} 对象的形式被返回。 -2. 调用 {{domxref("FileSystemFileHandle.getFile()")}} 以访问文件的内容,使用 {{domxref("FileSystemFileHandle.createWritable()")}} / {{domxref("FileSystemWritableFileStream.write()")}} 来修改内容。 +2. 调用 {{domxref("FileSystemFileHandle.getFile()")}} 以访问文件的内容,使用 {{domxref("FileSystemFileHandle.createWritable()")}} 或 {{domxref("FileSystemWritableFileStream.write()")}} 来修改内容。 3. 调用 {{domxref("FileSystemHandle.requestPermission()", "FileSystemHandle.requestPermission({mode: 'readwrite'})")}} 来请求用户的权限以保存更改。 4. 如果用户接受了权限请求,更改就会保存回原文件。 @@ -159,7 +161,7 @@ const content = textEncoder.encode("Some text"); accessHandle.write(content, { at: size }); // 强制刷入更改。 accessHandle.flush(); -// 文件当前的大小,现在是 `9`("Some text" 的长度)。 +// 文件当前的大小,现在是 `9`(“Some text”的长度)。 size = accessHandle.getSize(); // 编码更多要写入文件的内容。 @@ -168,7 +170,7 @@ const moreContent = textEncoder.encode("More content"); accessHandle.write(moreContent, { at: size }); // 强制刷入更改。 accessHandle.flush(); -// 文件当前的大小,现在是 `21`("Some textMore content" 的长度)。 +// 文件当前的大小,现在是 `21`(“Some textMore content”的长度)。 size = accessHandle.getSize(); // 准备一个长度与文件相同的数据视图。 @@ -188,10 +190,6 @@ console.log(textDecoder.decode(dataView)); accessHandle.truncate(4); ``` -## 浏览器兼容性 - -{{Compat}} - ## 参见 -- [源私有文件系统](https://web.dev/articles/origin-private-file-system)——web.dev +- web.dev 上的[源私有文件系统](https://web.dev/articles/origin-private-file-system)