程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#使用系統函數System.Shell.Folder.copyHere解壓.zip文件

c#使用系統函數System.Shell.Folder.copyHere解壓.zip文件

編輯:C#入門知識

C#解壓.zip文件,網上一搜一大堆方法,有使用System.IO.Compression.GZipStream的,有使用J#庫函數的,也有仿Java自己寫庫函數的,但好多都不大好使,最終發現還是系統函數System.Shell.Folder.copyHere(oItem [, intOptions])最為好使。具體方法如下:

1. 添加引用 Shell32.dll,可以在Windows\system32中找到它。
2. 添加方法,搞定。
static void UnZip(string zipFile,string destFolder)
            {
                        Shell32.ShellClass sc = new Shell32.ShellClass();
                        Shell32.Folder SrcFolder = sc.NameSpace(zipFile);
                        Shell32.Folder DestFolder = sc.NameSpace(destFolder);
                        Shell32.FolderItems items = SrcFolder.Items();
                        DestFolder.CopyHere(items, 20);
            }
(這裡只需注意一點,destFolder必須是事先存在的 folder,此方法不會自動創建folder)

DestFolder.CopyHere(items, 20)中20的其實是一個intOptions flags (4|16),4指不要顯示處理窗口,16指如果處理窗口顯示的話就選擇"yes to all"。關於具體的intOptions描述,可以到http://msdn2.microsoft.com/en-us/library/ms723207.aspx中查看。


摘自 hiber

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved