なぜこれがうまくいかないのかわからない - 私を夢中にさせ始めている!
他の誰もこの問題を抱えていないようです
私のコードは次のようになります。
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;
}
すべてのファイル パスが有効です。
残りをコメントアウトすると、readme ファイルを追加しても問題なく動作します。ただし、他のファイルを追加すると、zip ファイルが無効になります。
提案をいただければ幸いです。
ありがとう
アップデート
ストリームを正確に正しいサイズで初期化すると、それが機能することに気付きました。アーカイブをディスクに書き込まずにサイズを取得する方法を知っている人はいますか?
さらに更新
今のところ回避策を追加しました。
アーカイブをディスクに保存し、それを別のストリームに読み込むことで、必要なことを行うことができます
非常に不自由で、私はそれが本当に好きではないので、誰かがより良い方法を提案できるなら、私は感謝しています!