目前,我正在尝试在内存中创建一个zip文件。我收集了很多文件
byte[] item1 = File.ReadAllBytes(@"C:\1.gif");
byte[] item2 = File.ReadAllBytes(@"C:\2.gif");
在第二步中,我想将它们添加到一个zip文件中并保存该zip文件
byte[] result = AddFilesToZip(new byte[][] { item1, item2 });
File.WriteAllBytes(@"C:\images.zip", result);
这是我的方法AddFilesToZip
:
public static byte[] AddFilesToZip(byte[][] filesToAdd)
{
using (System.IO.MemoryStream result = new MemoryStream())
{
using (System.IO.Packaging.Package zip = System.IO.Packaging.Package.Open(result, System.IO.FileMode.Create))
{
for (int i = 0; i < filesToAdd.Length; i++)
{
System.IO.Packaging.PackagePart ZipPart = zip.CreatePart(new Uri(i + ".gif"), MediaTypeNames.Application.Zip, System.IO.Packaging.CompressionOption.Normal);
ZipPart.GetStream().Write(filesToAdd[i], 0, filesToAdd[i].Length);
}
}
return result.ToArray();
}
}
但是我已经收到一个错误,表明URI在无效new Uri(i + ".gif")
。
无效的URI:无法确定URI的格式。
问题似乎是您将需要一个相对的URI,但是Uri类不知道您要创建哪种Uri。
尝试以下方法:
new Uri("/" + i + ".gif", UriKind.Relative)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句