Skip to main content

FolderBrowserDialog

Benötigt Assembly System.Windows.Forms 

Erstellt ein Objekt für ein BrowserDialog-Fenster zum Auswählen eines Ordners

Eigenschaften

Methoden

ShowDialog() – Zum Anzeigen vom BrowserDialog

FolderBrowserDialog

Öffnet xeinen

Dialog zur Auswahl eines Ordners.
Typischer Windows-"Ordner auswählen"-Dialog. Weil Menschen offenbar selbst beim Auswählen eines Verzeichnisses noch eine GUI brauchen und nicht einfach "C:\Irgendwas" eintippen können.

Konstruktor

$dialog = [System.Windows.Forms.FolderBrowserDialog]::new()

Eigenschaften

Description

Text oberhalb des Verzeichnisbaums.

$dialog.Description = "Wähle einen Zielordner aus"

SelectedPath

Der aktuell ausgewählte Ordnerpfad.

Kann:

    vor dem Öffnen gesetzt werden → Startordner

    nach dem Schließen ausgelesen werden → ausgewählter Ordner

    $dialog.SelectedPath = "C:\Temp"
    
    $dialog.SelectedPath
    

    RootFolder

    Legt fest, ab welchem Systemordner der Benutzer navigieren darf.

    Verwendet Werte aus:

    [System.Environment+SpecialFolder]
    

    Beispiele:

      Desktop

      MyComputer

      MyDocuments

      ProgramFiles

      $dialog.RootFolder = [System.Environment+SpecialFolder]::Desktop
      

      ShowNewFolderButton

      Bestimmt, ob die Schaltfläche "Neuen Ordner erstellen" angezeigt wird.

      $dialog.ShowNewFolderButton = $true
      

      Methoden

      ShowDialog()

      Öffnet den Dialog.

      Rückgabewert:

      [System.Windows.Forms.DialogResult]
      

      Meist:

        OK

        Cancel

        $result = $dialog.ShowDialog()
        

        Dispose()

        Gibt verwendete Ressourcen frei.

        Technisch nicht immer zwingend nötig, aber sauberer. Besonders wenn man viele Dialoge erzeugt. Windows Forms sammelt sonst gerne kleinen Müll an wie ein Messie mit Kabelschublade.

        $dialog.Dispose()
        

        Einfaches Beispiel

        Add-Type -AssemblyName System.Windows.Forms
        
        $dialog = [System.Windows.Forms.FolderBrowserDialog]::new()
        
        $dialog.Description = "Wähle einen Ordner"
        $dialog.SelectedPath = "$env:USERPROFILE\Desktop"
        $dialog.ShowNewFolderButton = $true
        
        if (x)$dialog.ShowDialog() 
        -eq
        "OK")
        { $dialog.SelectedPath } $dialog.Dispose()

        Typischer Ablauf

        Dialog erstellen
            ↓
        Eigenschaften setzen
            ↓
        ShowDialog()
            ↓
        DialogResult prüfen
            ↓
        SelectedPath verwenden
            ↓
        Dispose()
        

        Wichtige Hinweise

        SelectedPath setzt auch den Startordner

        Viele denken:

        "RootFolder bestimmt den Startordner"

        Nein.
        RootFolder begrenzt nur den sichtbaren Bereich.

        Der tatsächliche Startordner kommt meistens von:

        SelectedPath
        

        Benutzer kann abbrechen

        Darum niemals direkt:

        $dialog.SelectedPath
        

        verwenden ohne vorher:

        ShowDialog()
        

        zu prüfen.

        Sonst arbeitest du eventuell mit leerem Inhalt weiter. Und plötzlich löscht ein Skript rekursiv "\". Kleine Eskalation. Riesige Wirkung.


        Unterschied zu OpenFileDialog

        Dialog Zweck FolderBrowserDialog Ordner auswählen OpenFileDialog Datei auswählen SaveFileDialog Speicherort + Dateiname auswählen

        Typische Verwendung

          Installationspfad wählen

          Backup-Ordner wählen

          Exportpfad wählen

          Scan-Verzeichnis wählen

          Musik-/Bildordner auswählen

          Benutzerfreundliche Pfadauswahl in GUIs


          Minimalbeispiel

          if ($dialog.ShowDialog() -eq "OK") {
              $path = $dialog.SelectedPath
          }
          

          Das ist im Grunde der Kern von allem hier. Der Rest ist Komfort, Einschränkung oder kosmetische Kontrolle über das Windows-Chaos von 2003.