Zacharia2 / SuperMemo-Toolkit

SuperMemo 增强工具(CLI命令行)。包含图链整理、EPUB图书转换导入、Latex公式转图片等。
GNU General Public License v2.0
24 stars 3 forks source link

区分未修改的文件。 #24

Closed Zacharia2 closed 6 months ago

Zacharia2 commented 7 months ago

对于一个不断增加的文件列表,这个文件列表中会有被修改的文件。如何区分出没有被修改的文件呢?

首先是增加和删除,其次是修改和没修改。

修没修过怎么判断,文件哈希值(md5 sha1嘛?

Zacharia2 commented 7 months ago

在开始时候读取历史列表,可能有两种情况,没有这个文件或者有这个文件。 下一步,建构一个列表对象 key:(hash, modify) 根据目录文件迭代函数得到HTML文件绝对路径,然后转换为相对路径。最为key,并且计算这些文件的hash存到key中。modify全部设为null

然后这两个新旧列表进行对比,用新列表的key去查找旧列表的key 并对比他们hash的异同,相同设置modify为false不同设置为true

还有一个可能是用新列表的key找不出旧列表的key,这种情况是新加的文件,直接设置modify为true即可

然后,筛选出列表中所有modify为true的作为子列表,这个子列表作为函数的结果返回

Zacharia2 commented 7 months ago

是你要优化的话用多线程,然后再用字典的序列化