概述OPFS 适合后台读写,FSA 适合与用户交互的导入与导出。本文组合两者以实现可靠的文件流转。导入到 OPFSasync function importByPicker(toPath) {
const [handle] = await window.showOpenFilePicker({ multiple: false });
const file = await handle.getFile();
const root = await navigator.storage.getDirectory();
const fh = await root.getFileHandle(toPath, { create: true });
const w = await fh.createWritable();
await w.write(await file.arrayBuffer());
await w.close();
}
从 OPFS 导出到用户目录async function exportToUserDir(fromPath) {
const root = await navigator.storage.getDirectory();
const fh = await root.getFileHandle(fromPath);
const file = await fh.getFile();
const save = await window.showSaveFilePicker({ suggestedName: fromPath.split('/').pop() });
const ws = await save.createWritable();
await ws.write(await file.arrayBuffer());
await ws.close();
}

发表评论 取消回复