字符串到zip文件

时间:2016-06-15 14:31:14

标签: c# io

我使用一个web服务,它返回一个zip文件,作为字符串,而不是我预期的字节。我试着将它写入磁盘,但当我打开它时,它告诉我它已损坏。我做错了什么?

string cCsv = oResponse.fileCSV;//this is the result from webservice
MemoryStream ms = new MemoryStream(System.Text.Encoding.ASCII.GetBytes(cCsv));
using (FileStream file = new FileStream("test.zip", FileMode.Create, FileAccess.Write))
{
    ms.WriteTo(file);
}
ms.Close();

2 个答案:

答案 0 :(得分:0)

我不确定字符串是什么类型的编码,但假设UTF-8,以下内容应该有效。 UTF-16将是另一种猜测。

string cCsv = oResponse.fileCSV;
using (BinaryWriter bw = new BinaryWriter(File.Create("test.zip")))
{
    bw.Write(System.Text.Encoding.UTF8.GetBytes(cCsv));
}

查看字符和返回的原始字符串本身可以提供信息。

修改

根据弗兰克的回答,正确的编码是base64,这当然是有道理的,因为它的二进制数据存储为字符串。

另外,根据Frank的回答,如果唯一的动作是直接写单个字节数组,那么File.WriteAllBytes就会更紧凑。

答案 1 :(得分:0)

好的,我解决了这个问题:

                File.WriteAllBytes("testbase64.zip", Convert.FromBase64String(cCsv));