- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Mono 的 Mac 上使用以下代码来解压缩 zip 文件。 zip 文件包含目录下的条目(例如 foo/bar.txt
)。但是,在解压后的目录中,FastZip 不是创建目录 foo
和文件 bar.txt
,而是创建文件 foo\bar.txt
.我该如何解决这个问题?
FastZip fz = new FastZip();
string filePath = @"path\to\myfile.zip";
fz.ExtractZip(filePath, @"path\to\unzip\to", null);
这会在 path\to\unzip\to
中创建一个文件 foo\bar.txt
。
最佳答案
在这种情况下显然不能使用 FastZip
所以我最终编写了自己的解压缩机制:
string filePath = @"path\to\myfile.zip";
string unzipDir = @"path\to\unzip\to";
using (var zipFile = new ZipFile(filePath))
{
foreach (var zipEntry in zipFile.OfType<ZipEntry>())
{
var unzipPath = Path.Combine(unzipDir, zipEntry.Name);
var directoryPath = Path.GetDirectoryName(unzipPath);
// create directory if needed
if (directoryPath.Length > 0)
{
Directory.CreateDirectory(directoryPath);
}
// unzip the file
var zipStream = zipFile.GetInputStream(zipEntry);
var buffer = new byte[4096];
using (var unzippedFileStream = File.Create(unzipPath))
{
StreamUtils.Copy(zipStream, unzippedFileStream, buffer);
}
}
}
关于mono - SharpZipLib 的 FastZip 不会在 Mac 上解压缩目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776842/
我正在使用 CSharpZipLib库自动压缩一些文件。问题是生成的 zip 文件不适用于 Winzip(8.1 版)或 XP 的压缩文件夹。它确实适用于 7zip。 Winzip 给出一个错误,提示
有没有办法找出提取时未提取存档的总大小。 最佳答案 试试这个: ZipFile zFile = new ZipFile(myZipFileName); long uSize = 0; foreach
我正在使用 SharpZipLib压缩一个带有子目录的文件夹,这工作正常。我想做的是剥离第一个子文件的父目录,这样不相关的整个结构就不会被执行... 例子: c:\a\b\c\d\e\f\g\h\fi
每当我尝试获取文件时,输入流的长度 (s.Length) 始终为零,我做错了什么? ZipEntry 有效且具有正确的文件大小等。 这是我使用的代码: public static byte[] Get
我使用了许多现有代码,并尝试以多种方式压缩文件夹,但我仍然遇到时间和文件夹大小(仍然大约相同大小)的问题。此代码来自库的源代码,但仍然没有给出想要的结果 static void Main(string
我需要压缩一个字符串以减小 Web 服务响应的大小。我在 SharpZipLib 示例中看到了单元测试,但不是我所需要的示例。 在下面的代码中,ZipOutputStream 的构造函数返回异常:“N
我使用 DotNetZip 创建一个带有内存字符串的 zip 存档,并使用以下代码将其作为附件下载。 byte[] formXml = UTF8Encoding.Default.GetBytes("T
我正在尝试使用以下代码将文件添加到现有存档中。运行时没有显示错误或异常,但也没有文件添加到存档中。有什么想法吗? using (FileStream fileStream = File
我正在尝试使用 SharpZipLib 从 zip 存档中提取指定的文件。我见过的所有示例都希望您解压缩整个 zip,然后执行以下操作: FileStream fileStreamIn
我有一个场景,我想使用 SharpZipLib 压缩电子邮件附件。然后最终用户将打开附件并解压缩附件。 最初使用 SharpZipLib 压缩的文件是否可以通过其他程序为我的最终用户轻松解压缩? 最佳
我想使用 SharpZipLib 打包压缩一些文件夹。示例结构 directory1: directory2: file1 file2 directory3:
我对压缩算法不是很精通。 我有一段 C# 代码使用上述库来压缩和解压缩一大块数据。它使用压缩级别 3,但除此之外,它是最基本的实现。 我现在想使用 C++ 对这些数据执行相同的操作。既然是 zip 格
我有一个 453MB 的 XML 文件,我正在尝试使用 SharpZipLib 将其压缩为 ZIP 文件. 下面是我用来创建 zip 的代码,但它导致了 OutOfMemoryException。此代
如何使用没有压缩的 SharpZipLib 将文件添加到 Zip 存档? Google 上的示例似乎少得可怜。 最佳答案 您可以使用 ZipOutputStream 类的 SetLevel 方法将压缩
我的代码中有以下方法: private bool GenerateZipFile(List filesToArchive, DateTime archiveDate) { try {
我有一个发送文件和文件夹的文件传输应用程序。 (服务器 - 客户端) 我正在尝试通过 TCP(套接字)发送数据,我已经为传输数据的方式制定了一些规则,所以如果它发送一个包含很多文件的大文件夹,它应该先
我使用 SharpZipLib 压缩文件,但用户收到此错误: 1 is not a supported code page 我找到了 here该问题在区域设置中,解决方案在 "replace the
我使用以下代码创建一个 zip 文件: var files = Directory.GetFiles(targetPath); var zip = ZipFile.Create(targetPath
我们目前使用 ICsharpCode.SharpZipLib 库的 GZipOutputStream 类进行压缩。我们从一个线程中完成。 我想将我的输入数据流分成块并并行压缩它们。 虽然我担心这个库可
大家好, 我正在尝试使用 ICSharpCode.SharpZipLib 库生成 Zip 文件,但它抛出了一个非常奇怪的错误。 代码: public static void ZipFiles(stri
我是一名优秀的程序员,十分优秀!