当前位置: 首页 > news >正文

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

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
http://www.dtcms.com/a/358252.html

相关文章:

  • Java Stream API并行流性能优化实践指南
  • 基于Kubernetes自定义调度器的资源隔离与性能优化实践指南
  • 从 0 到 1 构建零丢失 RabbitMQ 数据同步堡垒:第三方接口数据零丢失的终极方案
  • 人工智能学习:Python相关面试题
  • 人工智能学习:Linux相关面试题
  • 98、23种设计模式之代理模式(7/23)
  • spark.sparkContext.broadcast() 与 org.apache.spark.sql.functions.broadcast 的区别
  • 开源PPT生成智能体(Agent)全景透视:技术路线、代表项目与未来趋势
  • 鸿蒙ArkTS 核心篇-15-条件渲染(组件)
  • 三重积分的性质
  • [论文阅读] 人工智能 + 软件工程 | 从“法律条文”到“Gherkin脚本”:Claude与Llama谁更懂合规开发?
  • comfUI背后的技术——VAE
  • [创业之路-581]:如何驾驭不确定性和风险,并从中获利?
  • 什么是雪花算法
  • [Mysql数据库] 知识点总结7
  • 直播间整蛊玩法
  • 【一】Django框架版本介绍
  • 2025 批量下载hasmart所有知乎回答,文章和想法,导出txt,html和pdf
  • OSI与TCP/IP各层功能详解
  • 计算机毕设javayit商城 基于SSM框架的校园二手交易全流程管理系统设计与实现 Java+MySQL的校园二手商品交易与供需对接平台开发
  • java字节码增强,安全问题?
  • python pyqt5开发DoIP上位机【介绍】
  • 【Big Data】AI赋能的ClickHouse 2.0:从JIT编译到LLM查询优化,下一代OLAP引擎进化路径
  • 【具身智能】【机械臂】机械臂轨迹规划项目以及资料汇总【持续更新】
  • PLC中的指令:LDP,ANDP,ORP这几个英文全称是什么
  • Pmp项目管理方法介绍|权威详解与实战指南
  • 【Python】国内可用的高速pip镜像源大全
  • 虚幻基础:角色动画
  • 网络初识及网络编程
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(七)