日期:2014-05-17  浏览次数:20911 次

zip自解压
  Shell32.ShellClass sc = new Shell32.ShellClass();                  <1>
  Shell32.Folder SrcFolder = sc.NameSpace(zipFile);                  <2>
  Shell32.Folder DestFolder = sc.NameSpace(destFolder);              <3>
  Shell32.FolderItems items = SrcFolder.Items();                     <4>
  DestFolder.CopyHere(items, 20);                                    <5>

小弟想使用XP自带的提取功能,对ZIP解压,使用以上代码
但是在运行的过程中, <2> 总是抛出[找不到指定的文件]异常
但是把 变量 zipFile 放到  sc.open(zipFile);里,就可以使用rar软件打开对应的文件了,按理说应该是能找到那个ZIP文件才对吖,求解决,困扰了两三天了.



------最佳解决方案--------------------
Shell32.ShellClass sc = new Shell32.ShellClass();
Shell32.Folder SrcFolder = sc.NameSpace(Server.MapPath("~") + "\\1.zip");
Shell32.Folder DestFolder = sc.NameSpace(Server.MapPath("~") + "\\aaa");
Shell32.FolderItems items = SrcFolder.Items();
DestFolder.CopyHere(items, 20);
------其他解决方案--------------------
相关目录存在么 ?
------其他解决方案--------------------
http://www.cnblogs.com/hiber/archive/2007/10/17/927795.html
------其他解决方案--------------------
引用:
http://www.cnblogs.com/hiber/archive/2007/10/17/927795.html


唉,还是不行吖,都按照这样写代码的了
------其他解决方案--------------------
引用:
Shell32.ShellClass sc = new Shell32.ShellClass();
Shell32.Folder SrcFolder = sc.NameSpace(Server.MapPath("~") + "\\1.zip");
Shell32.Folder DestFolder = sc.NameSpace(Server.MapPath("~") + "\\aaa");
……


小弟的项目是winApplication的,按照大哥你的做法,我也在webApplication做了一次,问题依然
Shell32.Folder SrcFolder = sc.NameSpace(Server.MapPath("~") + "\\1.zip");异常在这里就抛出了
系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)

比如说代码
Shell32.Folder SrcFolder = sc.NameSpace(@"D:\My Documents\visual studio 2010\Projects\WebApplication1\WebApplication1\1.zip");
会抛出异常

但是
sc.open(@"D:\My Documents\visual studio 2010\Projects\WebApplication1\WebApplication1\1.zip");
可以调动相应的程序打开1.zip

Shell32.Folder SrcFolder = sc.NameSpace(@"D:\My Documents\visual studio 2010\Projects\WebApplication1\WebApplication1\");
这行代码也可以正确获取SrcFolder对象
求各位大哥解决一下.
------其他解决方案--------------------
目标路径和源文件路径
------其他解决方案--------------------
引用:
目标路径和源文件路径

源文件目录与文件都存在
可以使用sc.open()打开
当使用sc.NameSpace就抛出[系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)]
路径都是相同的