js 有没有类似于“虚拟文件系统”的库?

212 天前
 xiaoming1992

类似于

class File {
  // ...
}

class Dir {
  // ...
}

// 用法类似于
const root = new Dir(xxx)
root.add(xxx)

const file = new File(xxx)
file.content = 'xxx'

且实现上( api 能力)尽量类似真实的文件系统(但不是 fs 那种,因为并不存在真实的文件)


对了,最好是浏览器环境

2172 次点击
所在节点    JavaScript
13 条回复
lisxour
212 天前
有见过支持 node 的,但是你想要支持浏览器是什么应用场景,你怎么持久化保存呢?
xiaoyiyu
212 天前
xiaoming1992
212 天前
@xiaoyiyu 不持久化,我只是上次看到有通过类似 shell 的形式访问 reddit 的,我就想做一个 v2sh
accelerator1
212 天前
xiaoming1992
212 天前
@accelerator1 这个不是 fs 形式的,可能用起来不方便。

谢谢大家,#2 的 memfs 就很合适了。我的分不多了,账号被降权,提个问贵得要死,回复不起了。。。
xiaoyiyu
212 天前
@xiaoming1992 memfs readme 底部有与他相似的库推荐,也可以按照对应的关键字查找
Al0rid4l
212 天前
zhy0216
212 天前
tsc 里面有 好像是独立的库
ChefIsAwesome
212 天前
DOM 节点就是这么一棵树。访问上下左右,增删改查的方法都有。
flyqie
212 天前
@ChefIsAwesome #9

你的意思是想让楼主去基于 dom 树模拟?

略微有点复杂了,纯 js 就可以。
money1991
212 天前
webassembly 啊,自带文件系统,完全兼容 unix
ccbikai
212 天前
ajan
102 天前
浏览器端的

https://stuk.github.io/jszip/

```javascript
var zip = new JSZip();
zip.file("Hello.txt", "Hello World\n");
var img = zip.folder("images");
img.file("smile.gif", imgData, { base64: true });
zip.generateAsync({type:"blob"}).then(function(content) {
// see FileSaver.js
saveAs(content, "example.zip");
});
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX