FileSystemDirectoryHandle - 提供了文件系统目录的句柄
FileSystemDirectoryHandle
是 File System Access API
的接口,提供文件系统目录的句柄。该接口通过 window.showDirectoryPicker()
方法访问。
属性
从其父接口 FileSystemHandle
继承了属性。
方法
从其父接口 FileSystemHandle
继承了方法。
FileSystemDirectoryHandle.entries()
返回一个 Array
,表示给定对象自己的可枚举属性 [key, value]
。
FileSystemDirectoryHandle.getFileHandle()
返回一个 FileSystemFileHandle
,表示在方法被调用的目录中指定名称的文件。
FileSystemDirectoryHandle.getDirectoryHandle()
返回一个 FileSystemDirectoryHandle
,表示在方法被调用的目录中指定名称的子目录。
FileSystemDirectoryHandle.keys()
返回一个新的数组迭代器,其中包含 FileSystemDirectoryHandle
中每个项目的键。
FileSystemDirectoryHandle.removeEntry()
如果目录句柄包含名为指定名称的文件或目录,则尝试删除条目。
FileSystemDirectoryHandle.resolve()
返回从父句柄到指定子条目的目录名称的 Array
,子条目的名称作为最后一个数组项。
FileSystemDirectoryHandle.values()
返回一个新的数组迭代器,其中包含 FileSystemDirectoryHandle
对象中每个索引的值。
实例
以下实例返回具有指定名称的目录句柄,如果该目录不存在,则创建它。
const dirName = 'directoryToGetName';
// 假设我们有一个目录句柄:'currentDirHandle'
const subDir = currentDirHandle.getDirectoryHandle(dirName, {create: true});
下面的异步函数使用 resolve()
来查找相对于指定目录句柄的所选文件的路径。
async function returnPathDirectories(directoryHandle) {
// 通过显示文件选择器获取文件句柄:
const handle = await self.showOpenFilePicker();
if (!handle) {
// 用户取消,或无法打开文件。
return;
}
// 检查我们的目录句柄目录中是否存在句柄
const relativePaths = await directoryHandle.resolve(handle);
if (relativePath === null) {
// 不在目录句柄内
} else {
// relativePath 是一个名称数组,包含了相对路径
for (const name of relativePaths) {
// 记录每个条目
console.log(name);
}
}
}
规范
规范 |
---|
File System Access #api-filesystemdirectoryhandle |
桌面浏览器兼容性
暂无兼容数据