Gra*_*ant 7 c# append add archive sharpziplib
我正在尝试使用以下代码将文件添加到现有存档.运行时不会显示任何错误或异常,但也不会将任何文件添加到存档中.有什么想法吗?
using (FileStream fileStream = File.Open(archivePath, FileMode.Open, FileAccess.ReadWrite))
using (ZipOutputStream zipToWrite = new ZipOutputStream(fileStream))
{
zipToWrite.SetLevel(9);
using (FileStream newFileStream = File.OpenRead(sourceFiles[0]))
{
byte[] byteBuffer = new byte[newFileStream.Length - 1];
newFileStream.Read(byteBuffer, 0, byteBuffer.Length);
ZipEntry entry = new ZipEntry(sourceFiles[0]);
zipToWrite.PutNextEntry(entry);
zipToWrite.Write(byteBuffer, 0, byteBuffer.Length);
zipToWrite.CloseEntry();
zipToWrite.Close();
zipToWrite.Finish();
}
}
Run Code Online (Sandbox Code Playgroud)
Che*_*eso 15
在DotNetZip中,将文件添加到现有zip非常简单可靠.
using (var zip = ZipFile.Read(nameOfExistingZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFile(additionalFileToAdd);
zip.Save();
}
Run Code Online (Sandbox Code Playgroud)
如果要为该新文件指定目录路径,请对AddFile()使用不同的重载.
using (var zip = ZipFile.Read(nameOfExistingZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFile(additionalFileToAdd, "directory\\For\\The\\Added\\File");
zip.Save();
}
Run Code Online (Sandbox Code Playgroud)
如果要添加一组文件,请使用AddFiles().
using (var zip = ZipFile.Read(nameOfExistingZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.AddFiles(listOfFilesToAdd, "directory\\For\\The\\Added\\Files");
zip.Save();
}
Run Code Online (Sandbox Code Playgroud)
您不必担心Close(),CloseEntry(),CommitUpdate(),Finish()或任何其他gunk.
归档时间: |
|
查看次数: |
14786 次 |
最近记录: |