2017-02-22 100 views
0

我有一个SVG字符串,我想将其作为svg文件另存为C#服务器。我使用下面的代码:如何编写一个SVG字符串以C#编写文件

var guid = Guid.NewGuid().ToString("N"); 
Directory.CreateDirectory(AppSettings.ExportFolderPath.TrimEnd('\\') + String.Format("\\{0}\\svg", guid)); 
var svgFile = Path.Combine(AppSettings.ExportFolderPath.TrimEnd('\\') + String.Format("\\{0}\\svg\\graph.svg", guid)); 

File.WriteAllText(svgFile, svg); 

在最后一行我写的SVG字符串的文件,但是当我打开生成的文件,它不是SVG,似乎是垃圾文字。

EX:

enter image description here

我必须要正确的格式,因为它直接从浏览器(和前将会显示正确我把它发送到C#)来的SVG。下面是所生成的SVG的一个片段:

enter image description here

编辑:

这里是在File.WriteAllText呼叫时的SVG可变的图像。

enter image description here

编辑2: JSBIN for the svg在JSBin SVG的是完全相同的SVG变量。在检查输出svg文件后,它确实被写入文件。由于某些原因,它无法正确打开。这不是像我相信的C#writeAllText问题。

+3

代码的任何部分都与文件内容无关。 – SLaks

+1

请在'File.WriteAllText(svgFile,svg);'行上添加'svg'变量在调试器中的外观截图。 – Vikhram

+1

您是否检查过'svg'变量的内容以确定它是否实际包含您期望的数据? –

回答

0

SVG字符串没有正确写入输出文件。当用inkscape打开文件时,它看起来和预期的一样(在浏览器中打开最初并不起作用)。

感谢您的建议!