目前我正试图在我的记忆中创建一个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的格式。
答案 0 :(得分:1)
问题似乎是你需要一个相对URI,但是Uri类不知道你正在创建什么样的Uri。
请改为尝试:
new Uri("/" + i + ".gif", UriKind.Relative)