您的位置:首页 > 运维架构 > Shell

c#使用系统函数System.Shell.Folder.copyHere解压.zip文件

2009-07-11 22:46 429 查看
 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中查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# shell j# java