2017-02-22 16 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

SVG, что я должен быть отформатирован правильно, так как она напрямую из браузера (и отображается правильно, прежде чем я отправить его в C#). Вот фрагмент сгенерированного SVG:

enter image description here

Edit:

Вот изображение переменной SVG в момент вызова File.WriteAllText.

enter image description here

Edit 2: JSBIN for the svg SVG в JSBin точно такой же, как в переменной SVG. После проверки выходного файла svg он действительно записался в файл. По какой-то причине он не откроется правильно. Это не проблема с C# writeAllText, как я полагал.

+3

Никакая часть вашего кода не имеет никакого отношения к содержимому файла. – SLaks

+1

Добавьте скриншот того, как переменная 'svg' выглядит в отладчике в строке' File.WriteAllText (svgFile, svg); '? – Vikhram

+1

Вы изучили содержимое переменной 'svg', чтобы определить, действительно ли он содержит данные, которые вы ожидаете? –

ответ

0

Строка SVG правильно записана в выходной файл. При открытии файла с помощью inkscape он выглядел так, как ожидалось (открытие в браузере не срабатывало изначально).

Спасибо за предложения!