FolderBrowserDialog

Öffnet einen 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:

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

RootFolder

Legt fest, ab welchem Systemordner der Benutzer navigieren darf.

Verwendet Werte aus:

[System.Environment+SpecialFolder]

Beispiele:

$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:

$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 ($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


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.


Revision #5
Created 2026-02-06 15:23:12 UTC by John-Andreas Borinas
Updated 2026-05-07 05:06:35 UTC by John-Andreas Borinas