file system api下载

This commit is contained in:
mtvpls
2026-02-26 11:36:39 +08:00
parent 0745e25ed7
commit 34698e943c
5 changed files with 591 additions and 28 deletions
+53
View File
@@ -0,0 +1,53 @@
// File System Access API 类型定义
interface FileSystemWritableFileStream extends WritableStream {
write(data: BufferSource | Blob | string): Promise<void>;
seek(position: number): Promise<void>;
truncate(size: number): Promise<void>;
close(): Promise<void>;
}
interface FileSystemFileHandle {
createWritable(): Promise<FileSystemWritableFileStream>;
getFile(): Promise<File>;
}
interface FileSystemDirectoryHandle {
getFileHandle(name: string, options?: { create?: boolean }): Promise<FileSystemFileHandle>;
getDirectoryHandle(name: string, options?: { create?: boolean }): Promise<FileSystemDirectoryHandle>;
removeEntry(name: string, options?: { recursive?: boolean }): Promise<void>;
resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;
keys(): AsyncIterableIterator<string>;
values(): AsyncIterableIterator<FileSystemHandle>;
entries(): AsyncIterableIterator<[string, FileSystemHandle]>;
}
interface FileSystemHandle {
readonly kind: 'file' | 'directory';
readonly name: string;
isSameEntry(other: FileSystemHandle): Promise<boolean>;
}
interface Window {
showDirectoryPicker(options?: {
id?: string;
mode?: 'read' | 'readwrite';
startIn?: FileSystemHandle | string;
}): Promise<FileSystemDirectoryHandle>;
showOpenFilePicker(options?: {
multiple?: boolean;
excludeAcceptAllOption?: boolean;
types?: Array<{
description?: string;
accept: Record<string, string[]>;
}>;
}): Promise<FileSystemFileHandle[]>;
showSaveFilePicker(options?: {
suggestedName?: string;
types?: Array<{
description?: string;
accept: Record<string, string[]>;
}>;
}): Promise<FileSystemFileHandle>;
}