/// <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);
        }