名称:anyf
一个用于打包/解包零散文件/目录的程序,也可以将文件/目录打包并伪装成 JPEG 文件/解伪装。打包文件/目录时会保存原始目录结构,解包时创建与原始目录结构一致的新目录。打包后可单独解包其中一个文件,也可全部解包。
伪装为 JPEG 的原理很简单:在 JPEG 文件的结束标志位0xffd9后面添加数据即可。写此程序的初衷是C语言练手,创造一个属于自己的简单文件格式。
系统支持
Linux
- 测试环境:WSL2 Ubuntu x64 20.4.3 LTS;编译器:GCC 9.4.0。
Windows
- 测试环境:Windows 10 x64 19044;编译器:MinGW-GCC 12.1.0 / VS2022-MSVC-v142/143;SDK:Windows 10 10.0.19041.0。
其他环境未测试
编译方法
linux平台编译方法:
- 安装CMake,安装GCC编译器;
- 从源代码仓库下载/克隆fpack项目源代码至本地;
- 在fpack项目目录打开命令窗口;
- 输入命令:
cmake -DCMAKE_BUILD_TYPE:STRING=Release -B./build -G "Unix Makefiles"
; - 输入命令:
cmake --build ./build
; - 等待编译完成,生成的可执行文件在
anyf/binary
目录下,名为anyf
。
Windows平台编译方法:
-
MinGW-GCC编译器:
- 安装CMake,安装GCC编译器(MinGW);
- 从源代码仓库下载/克隆fpack项目源代码至本地;
- 在fpack项目目录打开命令窗口;
- 输入命令:
cmake -DCMAKE_BUILD_TYPE:STRING=Release -B./build -G "MinGW Makefiles"
; - 输入命令:
cmake --build ./build
; - 等待编译完成,生成的可执行文件在
anyf/binary
目录下,名为anyf.exe
。
-
Visual Studio 2022:
- 安装IDE
Visual Studio 2022
及 C++ 工作负载,编译工具MSVC v143
或v142
,SDKWindows 10 10.0.19041.0
; - 从源代码仓库下载/克隆fpack项目源代码至本地;
- 打开
anyf/msbuild
目录; - 使用
Visual Studio
打开解决方案文件msbuild.sln
; - 选择上方工具栏
解决方案配置
为Release
,x64
; - 选择上方菜单栏
生成
->生成解决方案
; - 等待编译完成,生成的可执行文件在
anyf/binary
目录下,名为anyf.exe
。
- 安装IDE
使用帮助
先决条件
- 将
anyf
或anyf.exe
所在目录路径加入系统环境变量 (此步可忽略,但建议加入,否则每次使用 anyf 都需要打开 cmd 再 cd 至 anyf 所在目录,不方便),一下使用帮助都默认你已经将anyf
所在目录加入环境变量; - 输入命令
anyf help
查看使用帮助。
例 1:将指定目录打包为 ANYF 文件
-
需求:将
E:\我的音乐
目录内的所有文件(包括其子目录内的文件)打包为名为E:\music.af
文件。 -
命令:
anyf pack -t E:\我的音乐 -r -f E:\music.af
-
步骤:
- 在
E:\我的音乐
目录打开命令窗口(Windows:选中我的音乐
文件夹,按住shift
+鼠标右键,选在此处打开PowerShell
) - 输入命令
anyf pack -t E:\我的音乐 -r -f E:\music.af
anyf pack
表示使用anyf
的pack
功能(打包功能)-t E:\我的音乐
表示将要打包的目标设置为E:\我的音乐
文件夹,由于我们是在E:\我的音乐
打开命令窗口,所以这个命令也可以简写为-t .
,.
代表当前目录,即E:\我的音乐
-r
代表递归搜索-t
选项指定的目录,即递归搜索E:\我的音乐
文件夹,意思是层层深入该文件夹内的子文件夹。不使用-r
选项则只收集该文件夹下的一代子文件和文件夹-f E:\music.af
表示指定生成的 ANYF 文件的路径和文件名为E:\music.af
,也可以简写为-f ..\music.af
,..
表示当前目录E:\我的音乐
的上一层,即E:\
- 使用
anyf info -f E:\music.af
查看已打包的 ANYF 文件的信息。
- 在
例 2:将指定目录打包并伪装为 JPEG 文件
-
需求:将
E:\我的音乐
目录内的所有文件(包括其子目录内的文件)打包并伪装为名为E:\music.jpeg
文件。 -
命令:
anyf fake -t E:\我的音乐 -r -f E:\music.jpeg -j E:\1.jpeg
-
步骤:
- 在
E:\我的音乐
目录打开命令窗口(Windows:选中我的音乐
文件夹,按住shift
+鼠标右键,选在此处打开PowerShell
) - 输入命令
anyf fake -t E:\我的音乐 -r -f E:\music.jpeg -j E:\1.jpeg
anyf fake
表示使用anyf
的fake
功能(打包并伪装功能)-t E:\我的音乐
表示将要打包的目标设置为E:\我的音乐
文件夹,由于我们是在E:\我的音乐
打开命令窗口,所以这个命令也可以简写为-t .
,.
代表当前目录,即E:\我的音乐
-r
代表递归搜索-t
选项指定的目录,即递归搜索E:\我的音乐
文件夹,意思是层层深入该文件夹内的子文件夹。不使用-r
选项则只收集该文件夹下的一代子文件和文件夹-f E:\music.jpeg
表示指定生成的伪装为 JPEG 的 ANYF 文件的路径和文件名为E:\music.jpeg
,也可以简写为-f ..\music.jpeg
,..
表示当前目录E:\我的音乐
的上一层,即E:\
- 使用
anyf info -f E:\music.jpeg
查看已打包并伪装为 JPEG 的 ANYF 文件的信息。
- 在
例 3:从 ANYF 文件或伪装为 JPEG 的 ANYF 文件中提取被打包的文件
-
需求:从前两个例子打包的
E:\music.af
和E:\music.af
中提取被打包的文件,提取到E:\已提取
文件夹 -
命令:
anyf extr -f E:\music.af -t E:\已提取
或anyf extr -f E:\music.jpeg -t E:\已提取
-
步骤:
- 在
E:\我的音乐
目录打开命令窗口(Windows:选中我的音乐
文件夹,按住shift
+鼠标右键,选在此处打开PowerShell
) - 输入命令
anyf extr -f E:\music.af -t E:\已提取
或anyf extr -f E:\music.jpeg -t E:\已提取
anyf extr
表示使用anyf
的extr
功能(提取文件功能)-f E:\music.af
或-f E:\music.jpeg
表示从E:\music.af
或E:\music.jpeg
中提取文件-t E:\已提取
表示将提取的子文件的保存目录设置为E:\已提取
文件夹
- 在
更具体的使用方法可以使用anyf help
命令查看使用帮助。
使用截图:打包并伪装为 JPEG
使用截图:伪装后
使用截图:查看打包后的文件信息
程序下载:
解压:52pojie
正文完