2017-02-22 7 views
0

Ich habe eine SVG-Zeichenfolge, die ich als eine Svg-Datei auf einem Server mit C# speichern möchte. Ich verwende den folgenden Code ein:Wie schreibe ich eine SVG-Zeichenfolge in Datei in 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); 

In der letzten Zeile ich den svg-String in die Datei schreiben, aber wenn ich die erzeugte Datei öffnen, es ist nicht SVG und scheint Müll Text zu sein.

EX:

enter image description here

Die SVG, die ich haben sollte korrekt formatiert werden, da sie direkt aus dem Browser kommt (und richtig angezeigt wird, bevor ich es in C# senden). Hier ist ein Ausschnitt des erzeugten SVG:

enter image description here

Edit:

Hier ist ein Bild des svg Variable zum Zeitpunkt des File.WriteAllText Anrufs.

enter image description here

Edit 2: JSBIN for the svg Die svg im JSBin ist genau das gleiche wie das SVG-Variable. Bei der Überprüfung der Ausgabe-SVG-Datei wurde es tatsächlich in die Datei geschrieben. Aus irgendeinem Grund wird es nicht korrekt geöffnet. Dies ist kein C# writeAllText-Problem, wie ich glaubte.

+3

Kein Teil Ihres Codes hat etwas mit dem Dateiinhalt zu tun. – SLaks

+1

Fügen Sie einen Screenshot hinzu, wie die Variable 'svg' im Debugger in der Zeile' File.WriteAllText (svgFile, svg); '? – Vikhram

+1

Haben Sie den Inhalt Ihrer 'svg'-Variablen untersucht, um festzustellen, ob sie tatsächlich die erwarteten Daten enthält? –

Antwort

0

Die SVG-Zeichenfolge wurde korrekt in die Ausgabedatei geschrieben. Beim Öffnen der Datei mit inkscape sah es wie erwartet aus (Öffnen im Browser funktionierte zunächst nicht).

Danke für die Vorschläge!

Verwandte Themen