【发布时间】:2016-11-30 14:55:58
【问题描述】:
我创建了一个 JSON 文件,我将使用 DotNetZip 对其进行压缩。 使用 StreamWriter 压缩它可以工作,如果我尝试使用 MemoryStream 它将无法工作。
StreamWriter :
sw = new StreamWriter(assetsFolder + @"manifest.json");
sw.Write(strManifest);
sw.Close();
zip.AddFile(Path.Combine(assetsFolder, "manifest.json"), "/");
zip.AddFile(Path.Combine(assetsFolder, "XXXXXXX"), "/");
zip.Save(outputStream);
内存流:
var manifestStream = GenerateStreamFromString(strManifest);
public static Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
zip.AddEntry("manifest.json", manifestStream);
zip.AddFile(Path.Combine(assetsFolder, "XXXXXXX"), "/");
zip.Save(outputStream);
我必须使用.JSON文件类型来压缩它,谁能告诉我哪里有错误?
【问题讨论】:
-
看起来是正确的。您确定您的路径设置正确吗?
-
如果我理解正确你想
gzip你的JSON,对吗? -
@Leon Husmann 是的 assetsFolder 的路径是正确的,
zip.AddEntry真的创建了一个流区域来保存那个 json 文件吗? -
@Ali 是的,你是对的
-
@YukwongTsang 是的,应该。你可以试试这个:DotNetZip Examples
标签: c# json memorystream dotnetzip