目录
文件操作安全:操作过程,对于原文件仅读取,不进行其他任何操作。保障了操作后原文件保留,操作安全。
引言
在当今数字化的时代,文件操作是计算机使用过程中不可或缺的一部分。无论是文件的打包、解包,还是加密、解密,都需要专业且高效的工具来完成。本文将介绍一款功能丰富的文件操作工具,详细分析其核心功能和实现代码。
(这里仅介绍原理和部分内容,完整项目源码可以联系本人获取,安装包在我主页的资源里,自己去取,0积分)
对了,安装包下载时会有风险提示,忽略即可,本人承诺此软件绝非病毒。
激活码给大家
1.0激活码:Go_Far_for_Dream_2024_7
4.0激活码:Go_Far_for_Dream_2025_1
效果演示
程序结构
─文件操作工具4.0 ├─文件操作工具4.0.exe ├─Extend ├─fileout │ ├─decrypt │ ├─encrypt │ ├─package │ └─unpackge ├─Help ├─Icon ├─Output ├─Packages └─PIC ├─background ├─button └─start
激活界面
主界面
多样化主题
文件选择【预览】
列表显示文件
双线程,支持进度显示
支持命令行操作,方便快捷
加密前后数据对比(数据乱序效果)
文件分割效果
整体架构
项目采用面向对象的设计,通过多个类协作完成各项文件操作任务。主要分为界面交互、文件操作、加密解密、打包解包等模块。
类结构
1.
MyFile
类
- 定义位置:
文件操作工具/文件操作工具/MyFile.h
和文件操作工具/文件操作工具/Code/Command/MyFile.h
- 功能:封装了文件的基本操作,如文件路径设置、文件打开、文件创建、文件删除、文件复制、文件移动等,同时提供了获取文件路径、文件名、文件后缀等信息的方法。
- 关键成员:
string filePath
:文件路径string fileSuffix
:文件后缀string purePath
:纯路径string fileName
:文件名fstream file
:文件流对象2.
Package
类
- 定义位置:
文件操作工具/文件操作工具/Package.h
和文件操作工具/文件操作工具/Code/Command/Package.h
- 功能:负责文件打包操作,包括设置源文件列表、目标路径、打包文件名,以及执行打包和写入文件等操作。
- 关键成员:
vector<MyFile> srcFiles
:源文件列表vector<FileData> pFileData
:文件数据列表string src, dest, name
:源路径、目标路径、文件名string over
:打包后文件路径3.
Manage
类
- 定义位置:
文件操作工具/文件操作工具/Manage.h
- 功能:作为整个项目的核心管理类,负责界面交互、文件列表管理、各种操作的触发和协调,如加密、解密、打包、解包等。
- 关键成员:
vector<FileList> Choose
:选择的文件列表vector<MyFile> hasChoosedFile
:已选择的文件列表GUI surface
:界面对象EnDecrypt endecrypt
:加密解密对象Package package
:打包对象DeBag debag
:解包对象Cutting cutting
:文件分割对象4.
ProgressBar
类
- 定义位置:
文件操作工具/文件操作工具/ProgressBar.h
- 功能:用于显示操作进度条,提供设置进度条参数、更新进度、绘制进度条等功能。
- 关键成员:
_2D_Point O, A, P, Q
:进度条相关的点坐标MyRectangle progress, cancel
:进度条和取消按钮矩形区域string fileName
:文件名double m
:进度百分比模块功能
1. 界面交互模块
GUI
类:负责绘制界面,包括背景、侧边栏、按钮、文件列表、文件信息等。Manage::Run()
方法:主循环,处理界面更新、鼠标事件、操作触发等。2. 文件操作模块
MyFile
类:提供文件的基本操作,如打开、创建、删除、复制、移动等。Manage
类:负责文件列表的加载、选择、更新等操作。3. 加密解密模块
EnDecrypt
类:实现文件的加密和解密功能。Manage::_Encrypt()
和Manage::_Decrypt()
方法:触发加密和解密操作。4. 打包解包模块
Package
类:实现文件的打包功能。DeBag
类:实现文件的解包功能。Manage::_Package()
和Manage::_Debag()
方法:触发打包和解包操作。5. 进度显示模块
ProgressBar
类:显示操作进度条。Manage::ChangeProgress()
和Manage::Graph_progerss()
方法:设置进度条参数和绘制进度条。代码调用关系
Manage
类作为核心管理类,调用其他类的方法完成各种操作。Package
类和EnDecrypt
类等在Manage
类的相应方法中被调用,实现具体的功能。ProgressBar
类在操作过程中被Manage
类调用,显示操作进度。项目架构
文件操作工具 ├── 文件操作工具 │ ├── Code │ │ ├── Command │ │ │ ├── EnDecrypt.h │ │ │ ├── Manage.h │ │ │ ├── MyFile.h │ │ │ ├── Package.h │ │ │ └── ...(其他命令相关头文件) │ │ └── ...(其他代码文件夹) │ ├── GUI.h │ ├── Manage.cpp │ ├── MyFile.cpp │ ├── Package.cpp │ ├── ProgressBar.h │ ├── ...(其他源文件和头文件) │ └── main.cpp ├── 资源文件(假设存放图片、图标等资源,可根据实际情况命名) │ ├── background.png(假设的背景图片) │ ├── button_icon.png(假设的按钮图标) │ └── ...(其他资源文件) └── 文档(假设存放项目说明、使用手册等文档,可根据实际情况命名) ├── README.md(项目说明文档) ├── UserManual.docx(用户使用手册) └── ...(其他文档)
示例代码调用关系
// Manage类的构造函数初始化相关参数 Manage::Manage(string path, int argc):surface(argc) { // ... } // Manage类的Run方法作为主循环 void Manage::Run() { while (1) { // 界面更新 surface.BackGround(); surface.Side(isallchoose); surface.Button(); // 处理各种操作 if (isencrypt) { std::thread encrypt(&Manage::_Encrypt, this); encrypt.detach(); isencrypt = 0; } if (ispackage) { std::thread package(&Manage::_Package, this); package.detach(); ispackage = 0; } // ... } } // Manage类的_Encrypt方法触发加密操作 void Manage::_Encrypt() { // ... endecrypt.SetEnData(mouseFlie, name, code); endecrypt.Encrypt(progresses.M()); // ... } // Manage类的_Package方法触发打包操作 void Manage::_Package() { // ... loadPackageFiles(); package.package(); package.SetDest(out, name); package.Write(1, progresses.getsize(), progresses.M()); // ... }
一、工具概述
主要功能
- 文件管理功能:
- 基本操作:
MyFile
类封装了文件的基本操作,如文件路径设置、文件打开、创建、删除、复制和移动等。例如,MyFile
类中的相关方法可用于对文件进行这些常见的操作,方便用户对文件进行管理。- 信息获取:可以获取文件的相关信息,如文件路径、文件名、文件后缀等。
MyFile
类中的成员变量和方法提供了这些信息的获取途径,帮助用户了解文件的属性。- 文件列表管理:
Manage
类负责文件列表的加载、选择和更新等操作。通过Manage
类的相关成员变量(如vector<FileList> Choose
和vector<MyFile> hasChoosedFile
)和方法,可以管理用户选择的文件列表,实现对多个文件的批量操作。- 加密解密功能:
- 加密操作:
EnDecrypt
类实现了文件的加密功能。Manage
类中的_Encrypt
方法会调用EnDecrypt
类的SetEnData
和Encrypt
方法,对用户选择的文件进行加密处理,保护文件内容的安全。- 解密操作:同样由
EnDecrypt
类提供解密功能。用户可以通过相应的操作触发Manage
类的_Decrypt
方法,进而调用EnDecrypt
类的解密方法,将加密后的文件还原为原始状态。- 打包解包功能:
- 打包操作:
Package
类负责文件的打包操作。Manage
类的_Package
方法会调用Package
类的package
、SetDest
和Write
等方法,将用户选择的多个文件打包成一个文件,便于文件的存储和传输。Package
类还通过成员变量(如vector<MyFile> srcFiles
)管理源文件列表。- 解包操作:
DeBag
类实现文件的解包功能(虽然代码中未详细展示其具体实现)。用户可以通过Manage
类的_Debag
方法触发解包操作,将打包后的文件还原为原始的多个文件。- 文件分割合并功能(代码中虽提及
Cutting
类但未详细展示功能实现):
- 分割操作:假设
Cutting
类负责文件分割,可将一个大文件分割成多个较小的文件,方便存储或传输。- 合并操作:与分割操作相反,能够将多个分割后的小文件合并成一个完整的大文件。
- 进度显示功能:
- 进度条展示:
ProgressBar
类用于显示操作进度条。在加密、打包等耗时操作过程中,Manage
类会调用ProgressBar
类的相关方法(如ChangeProgress
和Graph_progerss
)来设置进度条参数并绘制进度条,让用户了解操作的执行进度。- 信息显示:进度条界面还可能显示相关的文件名等信息,帮助用户明确正在进行操作的文件对象。
- 界面交互功能:
- 界面绘制:
GUI
类负责绘制操作界面,包括背景、侧边栏、按钮、文件列表和文件信息等。通过调用GUI
类的BackGround
、Side
和Button
等方法,实现界面的可视化展示。- 用户操作处理:
Manage
类的主循环Run
方法处理界面的更新、鼠标事件和各种操作的触发。当用户进行选择文件、点击加密或打包按钮等操作时,Manage
类会根据用户的操作调用相应的功能模块进行处理
辅助功能
预览功能
- 文件类型识别:预览计算机本地文件,选择需要操作的文件夹或文件。
输出功能
- 目录选择:点击 “输出” 按钮后,程序会弹出系统的文件夹选择对话框,允许用户指定文件处理结果的输出目录。
- 路径记录与使用:程序记录用户选择的目录路径,并将其存储在内部变量中。在后续执行文件操作(如打包、加密等)时,将处理后的文件保存到该指定目录下。
高级功能(即以管理员身份解密,发布版本中已禁用)
- 权限验证:用户点击 “高级” 并选择 “以管理员身份解密” 后,程序会弹出输入框要求用户输入管理员密码。程序将输入的密码与预先存储的正确密码进行比对验证。
- 特权操作执行:若密码验证通过,程序会以管理员权限调用解密模块,对用户所选的
.cmyfEn
文件进行解密操作。这可能涉及到突破普通用户权限限制的文件访问和处理。