Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zh-cn]: sync translation for File System API & Origin Private File System #20035

Merged
merged 2 commits into from
May 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 23 additions & 7 deletions files/zh-cn/web/api/file_system_api/index.md
Original file line number Diff line number Diff line change
@@ -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/)提供的扩展来访问设备文件系统中的文件——允许使用文件读写以及文件管理功能。

## 概念与用法

Expand Down Expand Up @@ -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')}}。

## 示例

Expand Down Expand Up @@ -97,7 +112,7 @@ async function getTheFile() {
```js
const dirName = "directoryToGetName";

// 假设我们已经有一个目录句柄:'currentDirHandle'
// 假设我们已经有一个目录句柄:currentDirHandle
const subDir = currentDirHandle.getDirectoryHandle(dirName, { create: true });
```

Expand Down Expand Up @@ -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)
Original file line number Diff line number Diff line change
@@ -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. 如果用户接受了权限请求,更改就会保存回原文件。

Expand Down Expand Up @@ -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();

// 编码更多要写入文件的内容。
Expand All @@ -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();

// 准备一个长度与文件相同的数据视图。
Expand All @@ -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)