public void RefreshSelectedFiles(bool deleteFalseOnes = true)
        {
            //Anzeige leer machen
            foreach (var displayLine in FileDisplayContents)
            {
                Destroy(displayLine);
            }
            FileDisplayContents.Clear();
            //Wenn Pfade angezeigt werden...
            if (FilePathsAndStatus.Count != 0)
            {
                for (var i = 0; i < FilePathsAndStatus.Count; i++)
                {
                    var file = FilePathsAndStatus[i];
                    //Debug.Log("Anzahl Elemente in Filepath...: " + FilePathsAndStatus.Count);

                    /*Debug.Log("Gerade behandeltes Objekt: " + file.FullFilePath + " IsValid = " + file.isValid + "\n" +
                     *     " isChecked = " + file.isChecked + " HasBeenShown = " + file.statusHasBeenShown + " Index: " + i
                     *     ); */
                    //alle die noch nicht gezeigt wurden anzeigen
                    if (!file.statusHasBeenShown)
                    {
                        AddToFileDisplay(file.FullFilePath, file.isChecked, file.isValid);
                        file.statusHasBeenShown = true;
                        //Debug.Log("Bisher nicht gezeigte Datei wird gezeigt: " + file.FullFilePath);
                    }
                    else
                    {
                        //alle validen weiterhin anzeigen
                        if (file.isValid)
                        {
                            AddToFileDisplay(file.FullFilePath, file.isChecked, file.isValid);
                            //Debug.Log("Richtige Datei, die bereits gezeigt wurde wird gezeigt: " + file.FullFilePath);
                        }
                        //invalide löschen, die bereits 1x angezeigt wurden.
                        else
                        {
                            if (deleteFalseOnes)
                            {
                                FilePathsAndStatus.RemoveAt(i); //müsste so passen...ich mag diese Syntax nicht..
                                i--;                            //Index zurücksetzen, weil sonst letztes Element überschlagen wird....
                                //Debug.Log("Ungültige Datei wird gelöscht und nicht gezeigt: " + file.FullFilePath);
                            }
                            else
                            {
                                AddToFileDisplay(file.FullFilePath, file.isChecked, file.isValid);
                                //Debug.Log("Falsche Datei, die bereits gezeigt wurde wird gezeigt: " + file.FullFilePath);
                            }
                        }
                    }
                }
            }
        }
        public void FileDialogOpener()
        {
            //Wenn der FolderBrowser noch nie geöffnet wurde
            if (fbd == null)
            {
                fbd = new FolderBrowserDialog
                {
                    RootFolder          = Environment.SpecialFolder.Desktop,
                    ShowNewFolderButton = false
                }
            }
            ;

            //Folder Browsing Dialog wird immer angezeigt, wenn die Funktion aufgerufen wurde
            var fbdDialogResult = fbd.ShowDialog();

            //Nur wenn erfolgreich abgeschlossen gehts weiter, sonst abbruch
            if (fbdDialogResult != DialogResult.OK)
            {
                //Resettet die Optik des Buttons (wird nicht mehr als gedrückt angezeigt)
                BrowseButton.enabled = false;
                BrowseButton.enabled = true;
                return;
            }

            PreselectedFolderPath = fbd.SelectedPath;

            //Debug.Log("Im FolderBrowser ausgewählter Pfad: " + PreselectedFolderPath);

            //In ausgewähltem Ordner den FileOpenDialog konfigurieren
            var ofd = new OpenFileDialog
            {
                Filter             = "Textdatei (*.txt) | *.txt",
                AutoUpgradeEnabled = true,
                Multiselect        = true,
                InitialDirectory   = PreselectedFolderPath,
                RestoreDirectory   = true //könnte sein, dass man das braucht daher packen wir das einfach dazu
            };

            //Debug.Log(ofd.InitialDirectory);

            //Dialog öffnen
            var ofdDialogResult = ofd.ShowDialog();

            //Auch hier muss man abbrechen, weil man sonst nachdem man einen Ordner falsch ausgewählt hat dies nicht mehr korrigieren kann
            if (ofdDialogResult != DialogResult.OK)
            {
                BrowseButton.enabled = false;
                BrowseButton.enabled = true;
                return;
            }

            Debug.Log(Directory.GetCurrentDirectory());

            var fileNames = ofd.SafeFileNames;

            //Wenn Dateien ausgewählt wurden
            if (fileNames.Length != 0)
            {
                foreach (var file in fileNames)
                {
                    if (FileNameHelper.filePathList.Contains(PreselectedFolderPath + "\\" + file))
                    {
                        //Wenn Pfad bereits vorhanden
                        AddToFileDisplay(PreselectedFolderPath + "\\" + file, true, false, true);
                        //Debug.Log("Bereits vorhandene Datei hinzugefügt");
                    }
                    else
                    {
                        var fileNameHelperObject = new FileNameHelper(PreselectedFolderPath + "\\" + file, false, false);
                        //Der Liste der gespeicherten Pfade hinzufügen
                        FilePathsAndStatus.Add(fileNameHelperObject);
                        AddToFileDisplay(PreselectedFolderPath + "\\" + file, false, false);
                    }
                }
            }
            else
            {
                Debug.Log("Keine Dateien ausgewählt...");
            }
            BrowseButton.enabled = false;
            BrowseButton.enabled = true;
        }