复制代码 代码如下:
public class LhaUtity
{
///取得DLL的版本
[DllImport("unlha32")]
private static extern UInt16 UnlhaGetVersion();
/// <summary>
/// '取得DLL的执行情况
/// </summary>
/// <returns>是否成功</returns>
[DllImport("unlha32")]
private static extern Boolean UnlhaGetRunning();
/// <summary>
/// '文件检查
/// </summary>
/// <param name="szFileName"></param>
/// <param name="iMode"></param>
/// <returns></returns>
[DllImport("unlha32")]
private static extern Boolean UnlhaCheckArchive(String szFileName, Int32 iMode);
/// <summary>
/// 文件解压缩
/// </summary>
/// <param name="hwnd"></param>
/// <param name="szCmdLine"></param>
/// <param name="szOutput"></param>
/// <param name="dwSize"></param>
/// <returns></returns>
[DllImport("unlha32")]
private static extern int Unlha(int hwnd, string szCmdLine, string szOutput, int dwSize);
/// <summary>
/// 需要解压的文件
/// </summary>
/// <param name="archiveFile">解压文件路径</param>
/// <param name="extractDir">解压到路径</param>
/// <param name="isDeleteFile">是否删除</param>
public static bool UnCompress(string archiveFile, string extractDir,bool isDeleteFile)
{
string extractFullPath = string.Empty;
string startPath = AppDomain.CurrentDomain.BaseDirectory;
if (!System.IO.File.Exists(archiveFile))
{
//判断需要解压的文件存不存
throw new Exception(string.Format("需要解压的{0}不存在", archiveFile));
}
try
{
UInt16 ver = LhaUtity.UnlhaGetVersion();
}
catch (Exception ex)
{
throw new Exception("没找到Unlha32.dll文件");
}
if (UnlhaGetRunning())
{
throw new Exception("DLL正在执行");
}
if (!UnlhaCheckArchive(archiveFile, 0))
{
throw new Exception("文件不能被解压缩");
}
//解压的路径
if (string.IsNullOrEmpty(extractDir))
{
extractFullPath =string.Format(@"{0}{1}\", startPath,archiveFile.Substring(archiveFile.LastIndexOf("\\")+1,archiveFile.IndexOf(".lha")-1-archiveFile.LastIndexOf("\\")));
}
else
{
extractFullPath = extractDir;
}
if (!System.IO.Directory.Exists(extractFullPath))
{
System.IO.Directory.CreateDirectory(extractFullPath);
}
int ret = Unlha(0, string.Format("x \"{0}\" \"{1}\"", archiveFile, extractFullPath), null, 0);
if (ret != 0)
{
if (ret == 32800)
{
throw new Exception("文件解压缩取消");
}
else
{
throw new Exception("文件解压缩异常结束");
}
}
else
{
if (isDeleteFile)
{
System.IO.File.Delete(archiveFile);
}
return true;
}
}
}
项目中需要到解压这类型的文件,无从下手,上网看资料发现是日本常用的压缩算法之一,
查了很多资料,都没有好的办法解包,
后来找到这个dll可以解包的
但是网上的代码都是VB或者C的
唯有自己写成C#版本的,其实即使C#调用动态链接库
先到网上下载这个dll,然后把这个DLL放到C:\Windows\System32目录下
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]