File System Access API 文件读写与权限管理:安全提示、持久句柄与性能技术背景File System Access API 提供与本地文件系统交互的能力,包括文件/目录选择、读写与权限持久化。合理的权限管理与性能策略可提升端侧生产力并保证安全。核心内容文件选择与读取async function pickAndReadText() {
const [handle] = await (window as any).showOpenFilePicker({
types: [{ description: 'Text', accept: { 'text/plain': ['.txt', '.log'] } }]
});
const file = await handle.getFile();
const text = await file.text();
return text;
}
写入与保存async function saveText(defaultName: string, content: string) {
const handle = await (window as any).showSaveFilePicker({ suggestedName: defaultName });
const writable = await handle.createWritable();
await writable.write(content);
await writable.close();
}
目录访问与遍历async function pickDirectory() {
const dirHandle = await (window as any).showDirectoryPicker();
for await (const entry of (dirHandle as any).values()) {
// entry.kind: 'file' | 'directory'
}
return dirHandle;
}
权限持久化与检查async function ensurePermission(handle: any, mode: 'read' | 'readwrite' = 'read') {
const opts = { mode };
if ((await handle.queryPermission(opts)) === 'granted') return true;
return (await handle.requestPermission(opts)) === 'granted';
}
技术验证参数在 Chrome 128/Edge 130(本地文本与二进制文件):权限授予成功率:≥ 95%(用户交互)文本读写吞吐:≥ 50MB/s(小块)目录遍历稳定性:≥ 98%应用场景本地项目文件编辑与导入导出批量处理与数据清洗最佳实践仅在用户手势下请求权限,清晰提示用途使用权限检查与持久句柄减少重复提示对大文件采用分块与流式写入策略

发表评论 取消回复