f-keydle 解压、去套娃助手

查看 87|回复 6
作者:不谙世事的雨滴   
文件夹套娃和多层压缩包可能是各位访问电脑资料时遇到的最抓狂的事情了,文件夹套娃遇到的概率比较小,但是多层压缩包对于“老司机”来说可能是家常便饭了,尤其是在压缩包数量足够多还有压缩层数大于等于3时,解压时痛苦的滋味当事人肯定是体会过的。在准备写这款工具之前,我就遇到了这两重buff叠加(3层压缩,解压后外加三层文件夹套娃),而且硬盘容量也只放得下刚刚下好的压缩包(资料有150G,硬盘装完压缩包后还剩100G左右),没有空间同时存放解压后的资料的“超级窘境”。当时虽然手头有Advanced Renamer文件移动工具,而且自己还专门为此写过简单的批处理来进行批量解压,但是效果还是不好,误删了一些文件。像我这样有点经验和工具的人在面对文件夹套娃和多层压缩包时都显得力不从心,更何况是普通人呢?于是我便有了专门写一款工具来解决这种问题的想法。
想法有了,就得开始一个个解决问题了。首先就是设计好批处理的运行逻辑,使它能够同时处理套娃和压缩包,而且一次处理过后如果还有套娃和压缩包,会自动循环直到全部处理完成,此外还要设计好递归,使批处理能够一次性解决掉目录下的所有子项,这个就不多说了,比较复杂;其次就是如何判断解压是否成功。我初次选择的是bandizip,它的解压速度算是数一数二的,但是它不能通过命令行输出日志文件,想判断是否成功还得想别的办法,这让我一度想换7zip,不过最终我借助autohotkey成功捕捉到了bandizip运行窗口的信息,并且通过autohotkey语言识别并自动处理解压失败的情况,这个问题就这样解决了;第三个问题是如何在解压失败时准确地删除那个多出的文件夹。解决的办法是每次解压前先把当前目录下所有的文件夹名称都记录下来,然后进行根据这份记录进行对比,删除掉多出的那个文件夹。一开始我用的是批处理的echo追加写入文件,然后用find进行查找比对,但是发现一旦文件夹里有特殊字符,就会出错,后来我花钱请了个程序员帮助我写了个插件程序,解决了这个问题。即使有专业程序员帮忙,过程也是一波三折,主要问题还是出现在文件夹名称里的特殊字符,因为这个插件程序首先得知道目标目录在哪,传递参数时文件夹名称里只要有特殊字符就歇菜了,还好我想到个办法,在批处理中cd到目标目录,调用我写的程序(autohotkey立了大功)将当前完整的绝对路径以UTF-8编码的方式写入到一个txt中,然后再把这个txt文件移动到那个程序员写的插件程序(detector.exe)的同目录下,这样插件程序就可以直接调用和自己同目录下的txt文本中的路径信息,成功解决了这个问题。
这个工具软件我从快要过年一直抽空余时间(摸鱼)忙到现在,不过好在功夫不负有心人,让我等到了完成的这一天。
下面简单介绍一下这个软件:软件可以解除一个目录下所有子项的多层压缩还有文件夹套娃,支持目标路径(也就是需要处理的文件夹)里有各种特殊记号、表情包;只要提前把所有的密码设置进去,即使每层压缩包的密码不同,而且压缩层数多到令人发指,理论上不出错的话,也都可以给你解开;一旦一个压缩文件解压成功,就会被删除(
[color=]不可逆,不会进回收站。
[color=]不过可以放心,判断的准确率很高,截至到现在,还没出现过解压失败却还是删除原压缩文件的情况
),释放空间,解压出错的文件将维持原样;解压用的是bandizip(v7.30绿色便携版),相信可以为你省出不少时间;同时还能够递归删除目标目录下的指定文件,比如小姐姐图片里的推广链接(*.url)和推广用的txt文件。
软件本体、使用教程和全部源代码全部可以自由使用,虽然过程中自己也出了钱,但是从一开始我就想好了,做出来后要全部开源。
我百度了下,目前为止还没找到像这样能解决多层压缩和文件夹套娃的工具软件(可能是我水平和耐心不够),搜到的只有java和python的代码,没有搜到能用的可执行程序。我想,这个软件除了帮助普通的用户解决这样的问题,还有更大的意义。毕竟是个很少有人涉足的领域,而我写的工具软件如果真的成功的话,将会提供宝贵的经验。如果真的有那一天的话,我会开心到想上天的\( ̄︶ ̄*\))。
哦对了,该说说软件的代号或名称为什么是f-keydle了。其实这纯属一个巧合,我把软件上传到蓝奏云准备分享的时候,发现链接最后似乎有可以识别的英文单词,仔细一看,最后的b01keydle里有“keydle”这个很像是复合英文单词的部分:key和handle的最后三个字母“dle”,联想到自己工具软件中解压缩的部分里确实用到了尝试多个密码(key)解开压缩文件的处理方法,而且觉得这个名字朗朗上口,小巧,还似乎挺吉利的,看来老天有眼,都把软件名字都给我起好了。不过百度一查,keydle似乎是一家公司的名称,最好得改了。我这个软件处理的对象是文件夹(folder)和压缩文件(compressed file),于是我最终决定把软件的代号改成“f-keydle”。
哔哔了一堆,该放链接了:
https://wwkq.lanzoum.com/b01keydle
密码:cqu2
(怎么样,这运气如假包换!)
使用教程在【f-keydle_解压、去套娃助手.7z】中的“使用演示.mp4”里

宋体, 文件夹

Z65156811   

这个属实一绝
bluerabbit   

这个软件有用,之前一直用 python 干这个
chmwyy   

谢谢分享。收藏备用
uc359599080   

只能说楼主学习心真强
SNZXF   

感谢楼主分享,收藏了
shiym3288   

下来看看,多谢
您需要登录后才可以回帖 登录 | 立即注册

返回顶部