如何使用文件系统API在目录中创建文件

问题描述 投票:0回答:1

我正在尝试使用以下代码使用文件系统 API 将文件写入卷:

const fileHandle = await this.directoryHandle?.getFileHandle(
  entry.filename,
  {
    create: true,
  }
);

... write file with writable

它可以很好地处理示例文件(例如

test.txt
),但不适用于像
test/test.txt
这样的文件,这些文件应该写入新目录。我收到以下错误:

Failed to execute 'getFileHandle' on 'FileSystemDirectoryHandle': Name is not allowed

如何使用文件系统 API 在目录中创建文件?我不想为每个新文件夹创建一个新的目录句柄。

google-chrome file-system-access-api
1个回答
0
投票

您需要使用

getDirectoryHandle()
创建子目录,然后向其中写入文件:

dir = await showDirectoryPicker({ mode: "readwrite" });
subdir = await dir.getDirectoryHandle("subdir", { create: true });
file = await subdir.getFileHandle("myfile.txt", { create: true });

我不想为每个新文件夹创建一个新的目录句柄

这显然是不可能的。

您只能通过其直接父目录的句柄写入文件,而不能跨具有

subDir/myfile.txt
等路径的多个目录。

© www.soinside.com 2019 - 2024. All rights reserved.