[开源]零散文件/目录打包/打包并伪装为JPEG/解包的命令行程序,支持linux/windows

4次阅读
没有评论

名称: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。
其他环境未测试

编译方法

源代码仓库:GitHubGitee

linux平台编译方法:

  1. 安装CMake,安装GCC编译器;
  2. 从源代码仓库下载/克隆fpack项目源代码至本地;
  3. 在fpack项目目录打开命令窗口;
  4. 输入命令:cmake -DCMAKE_BUILD_TYPE:STRING=Release -B./build -G "Unix Makefiles";
  5. 输入命令:cmake --build ./build
  6. 等待编译完成,生成的可执行文件在anyf/binary目录下,名为anyf

Windows平台编译方法:

  • MinGW-GCC编译器:

    1. 安装CMake,安装GCC编译器(MinGW);
    2. 从源代码仓库下载/克隆fpack项目源代码至本地;
    3. 在fpack项目目录打开命令窗口;
    4. 输入命令:cmake -DCMAKE_BUILD_TYPE:STRING=Release -B./build -G "MinGW Makefiles";
    5. 输入命令:cmake --build ./build
    6. 等待编译完成,生成的可执行文件在anyf/binary目录下,名为anyf.exe
  • Visual Studio 2022:

    1. 安装IDE Visual Studio 2022 及 C++ 工作负载,编译工具 MSVC v143v142,SDK Windows 10 10.0.19041.0
    2. 从源代码仓库下载/克隆fpack项目源代码至本地;
    3. 打开anyf/msbuild目录;
    4. 使用Visual Studio打开解决方案文件msbuild.sln
    5. 选择上方工具栏解决方案配置Releasex64
    6. 选择上方菜单栏生成->生成解决方案
    7. 等待编译完成,生成的可执行文件在anyf/binary目录下,名为anyf.exe

使用帮助

先决条件

  1. anyfanyf.exe 所在目录路径加入系统环境变量 (此步可忽略,但建议加入,否则每次使用 anyf 都需要打开 cmd 再 cd 至 anyf 所在目录,不方便),一下使用帮助都默认你已经将anyf所在目录加入环境变量;
  2. 输入命令anyf help查看使用帮助。

例 1:将指定目录打包为 ANYF 文件

  • 需求:将 E:\我的音乐目录内的所有文件(包括其子目录内的文件)打包为名为E:\music.af文件。

  • 命令:anyf pack -t E:\我的音乐 -r -f E:\music.af

  • 步骤:

    1. E:\我的音乐目录打开命令窗口(Windows:选中我的音乐文件夹,按住shift+鼠标右键,选在此处打开PowerShell
    2. 输入命令anyf pack -t E:\我的音乐 -r -f E:\music.af
      • anyf pack表示使用anyfpack功能(打包功能)
      • -t E:\我的音乐表示将要打包的目标设置为E:\我的音乐文件夹,由于我们是在E:\我的音乐打开命令窗口,所以这个命令也可以简写为-t ..代表当前目录,即E:\我的音乐
      • -r代表递归搜索-t选项指定的目录,即递归搜索E:\我的音乐文件夹,意思是层层深入该文件夹内的子文件夹。不使用-r选项则只收集该文件夹下的一代子文件和文件夹
      • -f E:\music.af表示指定生成的 ANYF 文件的路径和文件名为E:\music.af,也可以简写为-f ..\music.af..表示当前目录E:\我的音乐的上一层,即E:\
    3. 使用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

  • 步骤:

    1. E:\我的音乐目录打开命令窗口(Windows:选中我的音乐文件夹,按住shift+鼠标右键,选在此处打开PowerShell
    2. 输入命令anyf fake -t E:\我的音乐 -r -f E:\music.jpeg -j E:\1.jpeg
      • anyf fake表示使用anyffake功能(打包并伪装功能)
      • -t E:\我的音乐表示将要打包的目标设置为E:\我的音乐文件夹,由于我们是在E:\我的音乐打开命令窗口,所以这个命令也可以简写为-t ..代表当前目录,即E:\我的音乐
      • -r代表递归搜索-t选项指定的目录,即递归搜索E:\我的音乐文件夹,意思是层层深入该文件夹内的子文件夹。不使用-r选项则只收集该文件夹下的一代子文件和文件夹
      • -f E:\music.jpeg表示指定生成的伪装为 JPEG 的 ANYF 文件的路径和文件名为E:\music.jpeg,也可以简写为-f ..\music.jpeg..表示当前目录E:\我的音乐的上一层,即E:\
    3. 使用anyf info -f E:\music.jpeg查看已打包并伪装为 JPEG 的 ANYF 文件的信息。

例 3:从 ANYF 文件或伪装为 JPEG 的 ANYF 文件中提取被打包的文件

  • 需求:从前两个例子打包的E:\music.afE:\music.af中提取被打包的文件,提取到E:\已提取文件夹

  • 命令:anyf extr -f E:\music.af -t E:\已提取anyf extr -f E:\music.jpeg -t E:\已提取

  • 步骤:

    1. E:\我的音乐目录打开命令窗口(Windows:选中我的音乐文件夹,按住shift+鼠标右键,选在此处打开PowerShell
    2. 输入命令anyf extr -f E:\music.af -t E:\已提取anyf extr -f E:\music.jpeg -t E:\已提取
      • anyf extr表示使用anyfextr功能(提取文件功能)
      • -f E:\music.af-f E:\music.jpeg表示从E:\music.afE:\music.jpeg中提取文件
      • -t E:\已提取表示将提取的子文件的保存目录设置为E:\已提取文件夹

更具体的使用方法可以使用anyf help命令查看使用帮助。

使用截图:打包并伪装为 JPEG

使用截图:伪装后

使用截图:查看打包后的文件信息

程序下载:
解压:52pojie

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2024-11-30发表,共计2789字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码