Wer viele Demos schreibt, steht immer wieder vor der Aufgabe, Daten, Logs oder sonst etwas zu serialisieren. In der Regel werden solche Dateien im Projektordner oder in einem Unterordner in der Projektmappe abgelegt. Diese einfache Methode hilft dabei, indem sie den Pfad zum aktuellen Projektverzeichnis ermittelt. Alles was dann für die Serialisierung noch angehängt werden muß, ist der Dateiname.
Beispiel:
static void Main()
{
string someString = "bla bla";
SerializeStringAsText("SampleFilename", someString);
}
private static void SerializeStringAsText(string fileName, string stringData)
{
string fullFileName = GetProjectPath() + fileName + ".txt";
using (TextWriter writer = new StreamWriter(fullFileName))
{
writer.Write(stringData);
writer.Close();
}
}
/// <summary>
/// Holt den Pfad zum aktuellen Projekt-Ordner.
/// </summary>
/// <returns>der Pfad zum aktuellen Projekt-Ordner.</returns>
internal static string GetProjectPath()
{
// Ergebnis: Debug- oder Release-Ordner im Projektordner.
string projectPath = Environment.CurrentDirectory;
// Mit jedem Durchlauf geht es im Verzeichnisbaum eine Stufe höher.
for(int i = 0; i < 2; i++)
{
projectPath = System.IO.Path.GetDirectoryName(projectPath);
}
return projectPath + @"\";
}
Kommentare zum Snippet