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

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 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中查看。

ShellFolder: 以重定向桌面为例 Windows Shell: 如何以编程方法切换桌面路径? 阅读详情

相关推荐

VBS解压zip文件并且递归统计文件数目

'解压zip文件到myTargetDir Sub UnZip(ByVal myZipFile, ByVal myTargetDir)     Set fso = CreateObject("Scripting.FileSystemObject")     If NOT fso.FileExists(myZipFile) Then         Exit Sub     ElseIf f

禅的专栏 1030

如何利用shell.zip文件进行解压

shell, 解压缩, zip

woyaowenzi的专栏 7334

Copy here

用于系统内 各盘数据,文件传输,小巧快速

使用 Shell 属性及方法

使用 Shell 属性及方法 2011年07月13日   1、创建 Shell 对象   var Shell = new ActiveXObject("Shell.Application");   2、使用 Shell 属性及方法   Shell.Application   Shell.Parent   Shell.CascadeWindows()   Shell.TileH...

nhy145be 449

shell实现加密压缩文件自动解压

shell实现自动解压缩加密压缩文件,支持zip、rar、gzip、bzip

cosann的博客 2150

VBS脚本:CopyFile

<br />2010-08-08<br /> <br />个人认为自己编写的代码执行条件越严格越好,并且竟可能对所有可能的情况进行错误处理<br /> <br />Rem : =========== 将文件 file 复制到文件folder 中 Rem : =========== file必须存在 Rem : =========== folder必须存在 Rem : =========== foler中不能存在与file同名的文件文件夹 Sub CopyFile( file,

StarFish的专栏 1893

WindowsApi 解压文件

1.解压方法 转载自http://www.2cto.com/kf/201204/128704.html "C#解压.zip文件,网上一搜一大堆方法,有使用System.IO.Compression.GZipStream的,有使用J#函数的,也有仿Java自己写库函数的,但好多都不大好使,最终发现还是系统函数System.Shell.Folder.copyHere(oItem [, in...

weixin_34258782的博客 747

vbs解压文件

直接上代码 Sub UnZip(ByVal myZipFile, ByVal myTargetDir) Set fso = CreateObject("Scripting.FileSystemObject") If NOT fso.FileExists(myZipFile) Then Exit Sub ElseIf fso.GetExtensionName(myZipFile) <> "zip" Then Exit Sub El

perfect_bug的博客 1320

(C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件

1 - 基础,浏览一个文件夹 我们知道,在win32中是以外壳名字空间的形式来组织文件系统的,在外壳名字空间里的每一个对象(注)都实现了一个IShellFolder的接口,通过这个接口我们可以直接查询或间接得到其他相关的接口。(注:这里的对象指的是外壳名字空间中的一个节点,对象有可能是一个文件夹,有可能是一个文件,也有可能是一个虚拟文件夹,例如:我的电脑,网上邻居,控制面板等)在C#中,我们这样...

weixin_34128501的博客 113

VBA 解压ZIP文件

VBA 解压ZIP文件

记录 812

VBS脚本备份桌面文档到指定目录,同时统计文档的信息。

在日常的计算机使用中,我会经常的更新系统尝鲜, 但是在更新系统之前,大家会备份桌面文档。 使用下面的VBS脚本能够一键复制所有项目到指定的备份目录,与此同时,统计出复制完的每个项目信息。

CodeMore的博客 2068
上一篇: VC2005 实现XP的风格
下一篇: 数组的操作
BornFan
博客等级 码龄18年 3粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值