/// <summary> /// Erzeugt eine Datei und gibt den in writerObj hinterlegten Inhalt aus /// </summary> /// <param name="writerObj">Das aktuelle FileLineWriterObject</param> /// <returns>True, wenn die Ausgabe erfolgreich war, sonst False</returns> private bool WriteFile(FileLineWriterObject writerObj) { string vollständigerPfad = System.IO.Path.Join(writerObj.FilePath, writerObj.FileName); var aktuellerMode = GetAktuellerMode(writerObj); var aktuelleCodierung = GetAktuelleCodierung(writerObj); if (GetCurrentDirectory(writerObj).Exists) { using (FileStream fileStream = new FileStream(vollständigerPfad, aktuellerMode)) { StreamWriter ausgabe = new StreamWriter(fileStream, aktuelleCodierung); ausgabe.WriteLine(CurrentFileLineWriterObject.LineContent); ausgabe.Flush(); ausgabe.Close(); } CurrentState = true; } else { CurrentState = false; } return(CurrentState); }
/// <summary> /// Stellt sicher, dass das Zielverzeichnis existiert und legt ggf ein neues Verzeichnis an /// </summary> /// <param name="writerObj">Das aktuelle FileLineWriterObject</param> /// <returns>Ein Instanz von DirectoryInfo für das Zielverzeichnis</returns> private DirectoryInfo GetCurrentDirectory(FileLineWriterObject writerObj) { DirectoryInfo dirInfo = new DirectoryInfo(writerObj.FilePath); if (!dirInfo.Exists) { dirInfo.Create(); } return(dirInfo); }
/// <summary> /// Übersetzt die DSL in Bezug zur Überschreibung auf die zu verwendenen Eigenschaften (FileMode) /// </summary> /// <param name="writerObj">Das aktuelle FileLineWriterObject</param> /// <returns>Gibt die zu verwendene Codierung zurück</returns> private FileMode GetAktuellerMode(FileLineWriterObject writerObj) { FileMode aktuellerMode = FileMode.Append; if (writerObj.FileCreation == FileCreation.Überschreiben) { aktuellerMode = FileMode.Create; } return(aktuellerMode); }
/// <summary> /// Übersetzt die DSL in Bezug zur Kodierung auf die zu verwendenen Eigenschaften (Encoding) /// </summary> /// <param name="writerObj">Das aktuelle FileLineWriterObject</param> /// <returns>Gibt die zu verwendene Codierung zurück</returns> private Encoding GetAktuelleCodierung(FileLineWriterObject writerObj) { Encoding aktuelleCodierung = Encoding.Default; switch (writerObj.FileEncoding) { case FileEncoding.Utf8: aktuelleCodierung = Encoding.UTF8; break; case FileEncoding.Utf16: aktuelleCodierung = Encoding.Unicode; break; case FileEncoding.Utf32: aktuelleCodierung = Encoding.UTF32; break; } return(aktuelleCodierung); }