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