OPFSQuery

GitHub
快速操作:
点击执行按钮后打开控制台以查看执行结果;
或手动复制代码到控制台修改并执行。
创建一个新的查询
var opfs = createOPFSQuery(); console.log(opfs);
返回一个关联当前目录的实例对象。
获取当前目录及工作路径
console.log('当前目录:', await opfs.current); console.log('工作路径:', await opfs.workingDirectory);
重置当前目录到根目录
console.log(opfs.reset());
当出现异常报错时可尝试进行重置操作。
列出当前目录下的文件和文件夹
opfs.ls().then((entries) => { console.log(entries); });
以指定目录为根目录,获取整个目录树
opfs.tree().then((tree) => { console.log(tree); });
创建新目录
opfs.createDirectory('directory').then((directoryHandle) => { console.log(directoryHandle); });
切换当前目录
opfs.cd('/directory', { create: true }).then((directoryHandle) => { console.log(directoryHandle); });
在当前目录下创建新文件
opfs.createFile('file.txt').then((fileHandle) => { console.log(fileHandle); });
获取当前目录下指定的文件关联句柄
opfs.getFileHandle('file.txt').then((fileHandle) => { console.log(fileHandle); });
获取当前目录下指定文件的 Blob 对象
opfs.getFileBlob('file.txt').then((fileBlob) => { console.log(fileBlob); });
获取当前目录下指定文件的大小
opfs.getFileSize('file.txt').then((size) => { console.log('file.txt size:', size); });
下载当前目录树到本地磁盘
opfs.downloadDirectory().then((res) => { console.log(res); });
下载当前目录下指定文件到本地磁盘
opfs.downloadFile('file.txt').then((res) => { console.log(res); });
重命名当前目录下指定文件
opfs.rename('file.txt', 'tmp.txt').then((res) => { console.log(res); });
删除当前目录下指定文件
opfs.remove('tmp.txt').then((res) => { console.log(res); });
删除当前目录下指定文件夹
opfs.remove('directory', { recursive: true }).then((res) => { console.log(res); });
删除当前目录自身
opfs.removeSelf({ recursive: true }).then((res) => { console.log(res); });
删除成功后返回到根目录
通过流式写入修改文件
opfs.writeFileStream('file.txt', 'some text').then((res) => { console.log(res); });
写入的数据可以是 ArrayBuffer、TypedArray、DataView、Blob 或字符串形式
读取文件内容
opfs.getFileBlob('file.txt').then(async (file) => { console.log(await file.text()); });
写入 buffer 到文件
var content = new TextEncoder().encode('Some data'); opfs.writeFile('file.txt', content, { transfer: content.buffer }).then((res) => { console.log(res); });
通过 web worker 同步方法写入数据
读取文件 buffer
opfs.readFile('file.txt').then((buffer) => { console.log(buffer); console.log(new TextDecoder().decode(buffer)); });
通过 web worker 同步方法读取文件数据
调整文件大小
opfs.truncateFile('file.txt', { size: 4 }).then((res) => { console.log(res); });
通过 web worker 同步方法调整文件大小
查询已用空间
import { OPFSQuery } from './OPFSQuery.js' OPFSQuery.usage().then((res) => { console.log(res); });