全文件格式加密/解密软件。(Full file format encryption / decryption software.)
- 增加了图形化窗口;
- 使用C++17新的
filesystem
优化了遍历文件的步骤; - 优化了代码逻辑;
- 改进了文件读写操作,进行10MB的分块读写,大大降低了内存占用,且基本没有了文件大小的限制;
加密和解密步骤相同
下载 并解压,解压后的文件如上图所示:
上面是图形化操作界面,下面是命令行操作界面,二者互相配合使用,故需放在同一目录下。
文件输入
:需要进行加密/解密的文件所在的文件夹文件输出
:处理完成的文件的保存路径
- 本程序会对子目录的文件进行递归处理,并在目标目录生成相同的目录结构。请确认选择的路径下只有待处理的文件,避免覆盖了其他文件!
- 文件处理完毕后,输出的文件总大小应该和输入的相等,且文件和文件夹数量均对应,否则就是处理失败,需要
重试
。 - 本次优化后,在文件处理完成后基本上不会出现文件处理失败,不输出有效文件的情况。但是程序嘛,就像酒吧永远都有概率发生顾客点了一份炒饭的事,无法避免发生问题。尽管我已经进行了较为周密的测试,但是不排除仍有遗漏。所以对于能够稳定复现的问题,可以提交 issue,万分感谢你的支持。
本程序主体为C++开发,接收命令行参数,调用方法为:
BitMap核心程序.exe <文件输入路径> <文件输出路径> <线程数>
参数不可缺漏,其中:
文件输入路径
:图形化界面的文件输入
。文件输出路径
:图形化界面的文件输出
。线程数
:即多线程处理文件所使用的线程数量,8核16线程CPU建议使用14线程以下,图形化界面默认给的是物理线程数减2。
图形化界面基于Python的Tkinter
库开发,实际上就是给调用程序主体加上了一层封装,本质还是在用户配完参数后,转换为指令执行。
VS2022开发环境部署
- C++语言标准选C++17,以调用
filesystem
- 调试中命令参数可自行构造
- SDL检查选否,绕过
ThreadPool.h
的result_of
报错,result_of
是C++14的内容,之后弃用,暂未找到替代。