<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
        主站蜘蛛池模板: 亚洲国产二区三区久久| 久久亚洲精品成人777大小说| 亚洲一级黄色大片| 69视频在线观看免费| 久久精品亚洲综合一品| 日韩免费视频一区二区| 亚洲人成电影在线天堂| 最近免费最新高清中文字幕韩国| 18gay台湾男同亚洲男同| 国产精品爱啪在线线免费观看| 蜜芽亚洲av无码精品色午夜| 国产成人精品免费视频大全麻豆| 亚洲国产精品人久久电影 | 日韩免费在线视频| 亚洲国产精品婷婷久久| 91精品国产免费| 最新亚洲春色Av无码专区| 日韩一区二区免费视频| 高潮毛片无遮挡高清免费视频 | 在线亚洲精品福利网址导航| 国产精品成人啪精品视频免费| 国产成人综合亚洲AV第一页 | 亚洲伊人久久成综合人影院| a毛片在线看片免费| 亚洲日本视频在线观看| 免费v片在线观看| 久久99精品国产免费观看| 亚洲入口无毒网址你懂的| 亚洲精品成人在线| 免费人妻无码不卡中文字幕系 | a级毛片免费高清视频| 亚洲男人天堂av| 日产乱码一卡二卡三免费| 中文字幕免费观看视频| 亚洲国产综合自在线另类| 免费中文字幕在线观看| 18女人毛片水真多免费| 免费国产在线精品一区| 久久久久亚洲精品日久生情| 国产免费拔擦拔擦8x| 日本免费在线中文字幕|