刚才整理笔记的时候,突然迸发出来了一些灵感。如果我想让我的文件管理工具更灵活,我就不应该设计我在什么场景使用它。
可是我又如何实现这个想法呢?我做了如下的设计(初步):
- 假如每个文件都对应如下的属性,其中比较特殊的tags字段,tags字段的key为文件夹Id,值为该文件在该文件夹中的tag,其中key为root时表表示该文件在根目录中的tag值。这些tag值会被如何设置,后面的内容会讲到。
|
|
- 假设每个文件夹都对应如下属性,这个比较特殊的是scripts字段,scripts中key是事件名,当该文件被删除子文件夹时触发什么事件,当该文件夹被移动文件时执行什么事件。
|
|
-
事件接受的参数有哪些呢?当前文件夹的所有属性信息、被移动文件的所有属性信息。事件的输出有哪些呢?输出新的文件属性信息的tags字段。
-
Explore本身也是有属性的,属性结构没想好。
Explore可以配置全局的事件。
这些都是初步设计,数据机构还有优化和丰富,数据结构转换也需要再精心设计以下。
还需要提供Explore相关的API。
我们让真正的文件操作也在这些事件中完成吧。
我现在在这套架构下实现我目前的需求:
- 文件顺序可以任意调整,这个应该是文件夹级别的,就是说每个文件夹都会有自己的方案。我在文件夹A的每个事件中都加一行代码,得到当前Explore视图(随便造的概念),然后进行排序,ra