我不知道爲什麼這不起作用 - 開始讓我瘋狂!添加多個檔案
沒有其他人似乎也有這個問題
我的代碼看起來是這樣的:
Stream stream = new MemoryStream();
try
{
// output zip
using (ZipFile zipFile = new ZipFile())
{
zipFile.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
ForEach(DataFile file In DataFiles)
{
String sourcePath = dataFile.Path;
String archiveName = dataFile.RealName;
//byte[] fileContents = File.ReadAllBytes(sourcePath);
//zipFile.AddEntry(archiveName, fileContents);
zipFile.AddFile(sourcePath, archiveName);
//e.FileName = archiveName;
}
zipFile.AddEntry("README.TXT", readmeMessage);
zipFile.Save(stream);
}
}
catch (Exception ex)
{
throw;
}
所有文件路徑是否有效。
如果我註釋掉其餘部分,添加自述文件可以正常工作。 但添加其他文件會導致壓縮文件無效。
我將不勝感激任何建議!
感謝
UPDATE
我發現,如果我有完全正確的大小初始化流它的工作原理。 有誰知道如何在不寫入磁盤的情況下獲取存檔的大小?
進一步更新
我添加了一個解決方法了。
我能做什麼,我需要通過保存歸檔到磁盤,然後讀它放回另一個流
很蹩腳的,我真的不喜歡它,因此,如果任何人都可以提出一個更好的辦法,我想心懷感激!
奇怪的是,如果我保存到一個文件,它工作正常!保存到一個流給我的問題。 +1給我這個線索! – CompanyDroneFromSector7G
你讀過圖書館給出的例子嗎?查看ZlibStreamExample並向我們展示代碼和錯誤消息,你已經嘗試過了。 –
是的,我有。代碼在問題中。你有什麼特別的例子?對於保存到流中沒有那麼多。 – CompanyDroneFromSector7G