- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用库 ICSharpCode.SharpZipLib.Zip
;
我的代码如下:
\\ALAWP\\THIS\\ACORD\\
ZIPDirectory
但是当它完成时,文件没有命名为 acord_combined.txt
,而是名为 ACORD\acord_combined.txt
我做错了什么?
public void CleanRoot()
{
DirectoryInfo RootDi = new DirectoryInfo(FilePrep.RootDirectory);
string ZipDirectory = FilePrep.RootDirectory + "\\processed\\AceKey"+ DateTime.Now.ToString("yyyyMMdd_H;mm;ss") +".zip";
ZipOutputStream NewZipOutput = new ZipOutputStream(File.Create(ZipDirectory));
foreach (FileInfo fi in RootDi.GetFiles("acord*.*"))
{
Compress(ref NewZipOutput, fi);
//MoveFile(fi.FullName,ZipDirectory);
}
NewZipOutput.Finish();
NewZipOutput.Close();
}
public void Compress(ref ZipOutputStream ZipFolder, FileInfo fi)
{
try
{
FileStream fsFileToBeZipped = fi.OpenRead();
ZipEntry entry = new ZipEntry(fi.FullName);
ZipFolder.PutNextEntry(entry);
int size = 2048;
byte[] buffer = new byte[size];
while (true)
{
size = fsFileToBeZipped.Read(buffer, 0, buffer.Length);
if (size > 0)
ZipFolder.Write(buffer, 0, size);
else
break;
} //end while ( true )
fsFileToBeZipped.Close();
//prepare and delete file
fi.Attributes = FileAttributes.Normal;
//fi.Delete();
} //end try
catch (Exception e)
{
Console.WriteLine("Error zipping File. Error - " + e.Message);
} //end catch
}
最佳答案
你的问题就在这里
new ZipEntry(fi.FullName);
zipEntry 的参数是 zip 文件中的路径,而不是压缩数据的完整路径。通常 zip 库,如 7zip 和 SharpZip,公开了一种创建“入口路径”的方法,但写入 zip 的实际数据来自完整路径。
可能你想要的是
new ZipEntry(Path.GetFileName(fi.fullName))
关于c# - 在 zip 中不应该使用 ICSharpCode.SharpZipLib.Zip 子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10035039/
我正在使用 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
我是一名优秀的程序员,十分优秀!