2
using (ZipFile zip = ZipFile.Read("update.zip"))
{
   zip.ExtractAll("\\serv\\www", ExtractExistingFileAction.OverwriteSilently);
}

我正在使用上述内容尝试提取update.zip\serv\www. 当我将它包含在try{} catch{}. 如果它有任何相关性,update.zip 的结构是:

update.zip:
    folderA
        ONE.txt
        TWO.txt

\serv\www里面有folderA几个文件。

运行我的程序时,它看起来好像提取成功了,但是文件并没有出现在任何地方。这可能是什么原因造成的?

4

1 回答 1

2

最好也包括一个硬盘驱动器号。

c:\服务器\www

我在没有它的情况下对其进行了测试,它可以工作。它只是和我包含“c:”时一样。但我不知道其中是否存在确定性行为。尝试在您存储项目的硬盘分区的根目录中查找解压缩的文件夹。

编辑:

我咨询了DotNetZip 规范,他们提到您可以只提供相对路径。

将 zip 存档中的所有项目提取到文件系统中的指定路径。路径可以是相对的或完全限定的。

但是他们没有提到如果你这样做,解压文件会出现在哪里。我的猜测在答案的第一部分。我的测试项目存储在 C:/Users/... 上,解压后的文件直接出现在 C: 的根目录中。

于 2013-11-09T13:46:52.447 回答