在使用中使用System.IO.File.OpenWrite()的另一种方法(流fileStream = System.IO.File.OpenWrite(“D:\ sample.svg”))

时间:2013-03-10 16:02:42

标签: c# filestream

using (Stream fileStream = System.IO.File.OpenWrite("D:\sample.svg"))
{
    byte[] buffer = new byte[8 * 1024];
    int len;
    while ((len = SvgStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        fileStream.Write(buffer, 0, len);
    }
}

我有用于将PPT转换为SVG的代码。 SvgStream包含PPT幻灯片。我不想将转换后的SVG文件存储在像D:\ sample.svg这样的物理路径上。是否可以将其存储在非物理路径的对象上?

2 个答案:

答案 0 :(得分:3)

  

是否可以将其存储在非物理路径的对象上?

不确定。如果要流入内存而不是文件系统,请创建MemoryStream而不是FileStream

虽然我在这里:你可能想要使用CopyTo方法,而不是一次只在一页上缓存它的繁琐工作。

答案 1 :(得分:0)

我将其保存为字符串:

SvgStream = new MemoryStream();
sld.WriteAsSvg(SvgStream);
SvgStream.Position = 0;
string[] svgArray = new string[MAX];

//instead of using(var  fileStream = File.IO.......
//I came up with this:
var sr = new StreamReader(SvgStream);
svgArray[i] = sr.ReadToEnd();