<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
        主站蜘蛛池模板: 久久亚洲精品无码av| 久久精品视频亚洲| 亚洲AV噜噜一区二区三区| 国产妇乱子伦视频免费| 亚洲精品成人图区| 无码国产精品一区二区免费式影视| 亚洲AV成人精品网站在线播放| 18禁在线无遮挡免费观看网站| 亚洲午夜久久久影院伊人| 免费看内射乌克兰女| 亚洲熟女乱综合一区二区| 一级毛片a免费播放王色电影 | 无码人妻一区二区三区免费n鬼沢| 久久亚洲高清综合| 成人久久免费网站| 亚洲国产成人久久综合一 | 日本在线高清免费爱做网站| 亚洲免费闲人蜜桃| 韩国免费三片在线视频| 亚洲日韩AV一区二区三区四区 | 亚洲日韩国产一区二区三区| 国产黄色免费观看| 亚洲国产精品不卡在线电影| 亚色九九九全国免费视频| 中日韩亚洲人成无码网站| 免费在线不卡视频| 叮咚影视在线观看免费完整版| 亚洲成电影在线观看青青| 成年丰满熟妇午夜免费视频| 免费精品国产自产拍在线观看| 亚洲色无码一区二区三区| 四虎在线成人免费网站| 日韩色日韩视频亚洲网站| 亚洲精品少妇30p| 中文字幕精品亚洲无线码一区| 在线观看免费黄网站| 亚洲美女一区二区三区| 免费羞羞视频网站| 成人无码区免费A∨直播| 亚洲成av人片在线看片| 免费在线观看一级毛片|