<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        C#調用動態unlha32.dll解壓Lha后綴的打包文件分享

        來源:懂視網 責編:小采 時間:2020-11-27 22:40:33
        文檔

        C#調用動態unlha32.dll解壓Lha后綴的打包文件分享

        C#調用動態unlha32.dll解壓Lha后綴的打包文件分享: 代碼如下:public class LhaUtity { ///取得DLL的版本 [DllImport(unlha32)] private static extern UInt16 UnlhaGetVersion(); /// <summary> /// '取得DLL的執行情況 /// </summary> ///
        推薦度:
        導讀C#調用動態unlha32.dll解壓Lha后綴的打包文件分享: 代碼如下:public class LhaUtity { ///取得DLL的版本 [DllImport(unlha32)] private static extern UInt16 UnlhaGetVersion(); /// <summary> /// '取得DLL的執行情況 /// </summary> ///

        代碼如下:
        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目錄下

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        C#調用動態unlha32.dll解壓Lha后綴的打包文件分享

        C#調用動態unlha32.dll解壓Lha后綴的打包文件分享: 代碼如下:public class LhaUtity { ///取得DLL的版本 [DllImport(unlha32)] private static extern UInt16 UnlhaGetVersion(); /// <summary> /// '取得DLL的執行情況 /// </summary> ///
        推薦度:
        標簽: 的文件 dll c#
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲一级黄色大片| 粉色视频免费入口| 国产免费无码一区二区| 国产亚洲日韩在线三区| 91视频免费网站| 亚洲成AV人片在WWW色猫咪| 国产黄色片免费看| 亚洲精品自在在线观看| 久久九九免费高清视频| 亚洲AV综合色区无码二区爱AV| 中文字幕亚洲免费无线观看日本| 亚洲自偷自拍另类12p| 精品国产污污免费网站aⅴ| 亚洲精品国产高清不卡在线| 成人a毛片免费视频观看| 91麻豆国产自产在线观看亚洲| 男女拍拍拍免费视频网站| 亚洲女久久久噜噜噜熟女| 亚洲高清毛片一区二区| 四只虎免费永久观看| 香蕉免费看一区二区三区| 久久久久亚洲AV片无码| 国产免费不卡v片在线观看| 日日摸日日碰夜夜爽亚洲| 亚洲中文字幕日产乱码高清app| 免费A级毛片在线播放| 亚洲妇熟XXXX妇色黄| 亚欧免费视频一区二区三区 | 亚洲永久精品ww47| 免费A级毛片在线播放| 亚洲精品女同中文字幕| jlzzjlzz亚洲乱熟在线播放| 亚洲色最新高清av网站| 亚洲人成无码网站久久99热国产| 免费的全黄一级录像带| 亚洲日韩AV一区二区三区四区 | 亚洲va在线va天堂va四虎| 国产香蕉九九久久精品免费| 一二三四在线观看免费中文在线观看| 久久99国产亚洲精品观看| 日韩一区二区免费视频|