本帖最后由 etkane 于 2020-2-19 20:41 编辑
这个工具主要用处是根据文件名首部数字判断文件是否相同,然后删除文件名短的一个,比如樊登读书会等资源内容存在多个源头,内容重叠的,且为了省事,只下载了音频到一个文件夹。
一个网友给我发了他的困境,我就写了这么个小东西,请大家尊重正版,不要盗版。
临发布改了几个地方让软件比较通用,本来是用源码直接调试,因无文件可删除了,所以也就无法测试了,有BUG可留言。
为了删除内容一致,但文件大小MD5都不同(比如樊登读书会)里面就有很多重复的,但是文件大小不同(内容只开头广告内容不同),
下载的时候由于只下载了音频文件,百度云自动加了后缀(文件名也就不同了)
由于还有很多麻烦的事情,现有的批量重命名工具,文件去重工具都不是很适用。
于是写了这么个小工具。
由于这个小工具比较有针对性,不是很通用,所以,各位如想便利使用,可能还需要改一改。
易语言写的,用了精易模块(省事),中间死机一次,导致重写。
没啥技术含量,注意看看弹出的文本文件名目录,删除一些标题相同,但是文件不同的。防止误删。
删除的内容是移入回收站,防止删错。无误后,自行清空回收站。
下载:
temp.rar
(1.25 MB, 下载次数: 120)
截图:
源码:
[Asm] 纯文本查看 复制代码 .版本 2
.支持库 shell
.程序集 窗口程序集_启动窗口
.程序集变量 文件名组, 文本型, , "0"
.程序集变量 文件名清单文件号, 整数型
.程序集变量 文件目录, 文本型
.子程序 __启动窗口_创建完毕
文件目录 = 编辑框1.内容
.子程序 _按钮1_被单击
.局部变量 i, 整数型
文件_枚举 (文件目录, “*.*”, 文件名组, 假, 真, 假)
文件名清单文件号 = 打开文件 (文件目录 + “\文件名列表.txt”, 4, 1)
i = 1
.判断循环首 (取数组成员数 (文件名组) ≥ i)
.如果 (文本_是否为数字 (取文本左边 (文件名组 [i], 4)) = 假)
删除成员 (文件名组, i, 1)
.否则
i = i + 1
.如果结束
.判断循环尾 ()
.计次循环首 (取数组成员数 (文件名组), i)
写文本行 (文件名清单文件号, 文件名组 [i])
.计次循环尾 ()
关闭文件 (文件名清单文件号)
执行 (#打开文件, 文件目录 + “\文件名列表.txt”, , , )
.子程序 _删除_被单击
.局部变量 文件内容, 文本型
.局部变量 判断文件组, 文本型, , "0"
.局部变量 i
.局部变量 逻辑值, 逻辑型
文件名清单文件号 = 打开文件 (文件目录 + “\文件名列表.txt”, 1, 1)
文件内容 = 读入文本 (文件名清单文件号, )
判断文件组 = 分割文本 (文件内容, #换行符, )
i = 2
.判断循环首 (取数组成员数 (判断文件组) ≥ i)
.如果真 (取文本左边 (判断文件组 [i], 4) = 取文本左边 (判断文件组 [i - 1], 4))
.如果 (取文本长度 (判断文件组 [i]) < 取文本长度 (判断文件组 [i - 1]))
逻辑值 = 文件_删除到回收站 (文件目录 + “\” + 判断文件组 [i], 7)
编辑框2.加入文本 (到文本 (逻辑值) + “:删除:” + 判断文件组 [i])
.否则
逻辑值 = 文件_删除到回收站 (文件目录 + “\” + 判断文件组 [i - 1], 7)
编辑框2.加入文本 (到文本 (逻辑值) + “:删除:” + 判断文件组 [i - 1])
.如果结束
.如果真结束
i = i + 1
.判断循环尾 ()
关闭文件 (文件名清单文件号)
|