LZ4 解压工具(WPF / .NET 8)说明书

发布于:2025-08-31 ⋅ 阅读:(23) ⋅ 点赞:(0)

LZ4 解压工具(WPF / .NET 8)

偶尔会碰到lz4的文件,网上能找到解压工具,但是当时只找到了一个命令行,可以实现简单的压缩与解压,总是有些不太方便,于是我编写了这款带界面的,既可以不依赖lz4.exe,也可以在特定情况下调用lz4.exe保证解压成功,本软件是一款专注于 LZ4 解压的桌面工具,支持内置解码器实时进度显示,并在需要时自动回退到外部 lz4.exe,兼顾易用性与兼容性。
在这里插入图片描述

主要特性

  • 内置解码器(K4os LZ4 Streams)+ 实时进度显示(含百分比)
  • 内置失败自动回退外部 lz4.exe(可配置,按需提示选择,不强制)
  • 拖拽到窗口、拖拽到 EXE、或“打开方式”打开 .lz4 文件均可自动加入并立即开始解压
  • 统一输出目录(可选)与强制覆盖(可选)
  • 目录递归处理(可选)
  • 成功后删除源文件到回收站(可选)
  • 启动窗口居中(配置项)
  • 运行日志与每项状态展示
    在这里插入图片描述

使用场景

  • 批量解压 .lz4 文件,并追踪实时进度
  • 混合来源文件(含非 .lz4),自动跳过非 LZ4
  • 某些新版/特殊 LZ4 内容:先尝试内置解码,不行则回退到外部工具

安装与运行

  • 依赖框架版本(单文件):需安装 .NET 8 Desktop Runtime (x64)
    • 可执行文件在 bin/Release/net8.0-windows/win-x64/publish/Lz4DecompressorWpf.exe
  • 自包含版本(可选):可在无 .NET 运行库环境运行(如需可联系生成)

启动方式:

  • 双击运行后,拖拽文件/文件夹到窗口,点击“开始解压”
  • 直接将文件/文件夹拖拽到 Lz4DecompressorWpf.exe 上,软件会自动加入并立即开始
  • 将本软件设置为 .lz4 的“打开方式”,双击 .lz4 将自动解压

初次启动与 lz4.exe

  • 软件会尝试自动发现同目录 lz4.exe,若无也可正常启动
  • 仅当需要回退到外部解压时,才会提示选择 lz4.exe
  • 选择后路径会保存到配置文件 {AppName}.json

选项说明(界面)

  • 使用统一输出目录:将所有结果放到同一目录,保持相对目录结构(若从目录解压)
  • 强制覆盖 (-f):解压时覆盖已存在的目标文件
  • 递归子目录:对加入的目录执行递归扫描
  • 成功后删除源文件(回收站):仅在解压成功后删除

配置文件

  • 路径:与可执行文件同目录,文件名 {AppName}.json
  • 主要字段:
    • lz4Path:外部 lz4.exe 路径
    • useUnifiedOutputDir:是否启用统一输出目录
    • unifiedOutputDir:统一输出目录路径
    • overwrite:是否强制覆盖
    • recurse:是否递归目录
    • deleteSourceAfterSuccess:解压成功后删除源文件(回收站)
    • centerOnStartup:启动窗口是否居中(默认 true
    • useInternalDecoder:使用内置解码器(默认 true)。若 false 则始终使用外部 lz4.exe

文件命名规则

  • 若源文件名以 .lz4 结尾,输出名为去除 .lz4 后的文件名
  • 否则输出名为 原名 + ".out"(如 filefile.out

常见问题(FAQ)

  • Q:没有 lz4.exe 可以运行吗?
    • A:可以。内置解码器默认启用;仅在需要回退时才会提示选择 lz4.exe
  • Q:为什么某些文件会提示回退到外部解压?
    • A:为保证兼容性,遇到不受支持或错误情况会自动回退到外部工具。
  • Q:删除到回收站失败怎么办?
    • A:源文件会保留,并在“消息”列提示失败原因。
  • Q:软件是否收费?
  • A:收费,但是肯定不高,而且还支持提供源码。

构建与发布

  • 调试运行:
 dotnet run -c Debug
  • 发布(依赖框架,单文件):
 dotnet publish -c Release -r win-x64 --self-contained false \
  /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true



网站公告

今日签到

点亮在社区的每一天
去签到