Funktionreferenz


FileOpenDialog

Beschreibung anzeigen in

Zeigt den "Datei öffnen"-Dialog an.

FileOpenDialog ( "title", "init dir", "filter" [, options = 0 [, "default name" [, hwnd]]] )

Parameter

title Titel des Dialogfensters.
init dir Startverzeichnis.
filter Dateifilter wie z.B. "Alle (*.*)" oder "Textdateien (*.txt)" oder Multifiltergruppen wie z.B. "Alle (*.*)|Textdateien (*.txt)" (Siehe Bemerkungen).
options [optional] Dialog-Optionen: Um mehr als eine Option zu verwenden, ist BitOR zu verwenden.
  $FD_FILEMUSTEXIST (1) = Datei muss existieren (wenn der Benutzer einen Dateinamen eintippt)
  $FD_PATHMUSTEXIST (2) = Pfad muss existieren (wenn der Benutzer einen Pfad eintippt, endend mit einem Backslash)
  $FD_MULTISELECT (4) = Erlaubt Mehrfachauswahl
  $FD_PROMPTCREATENEW (8) = Fragt nach Erstellung einer neuen Datei, wenn diese nicht existiert.

Die Konstanten sind in FileConstants.au3 definiert.
default name [optional] Dateinamensvorschlag, der als Standard verwendet wird. Standard ist eine leerer String ("").
hwnd [optional] Das Fenster Handle welches als Parent für diesen Dialog verwendet wird.

Rückgabewert

Erfolg: Der komplette Pfad der ausgewählten Datei. Rückgabe mehrerer Dateien wie folgt: "Verzeichnis|Datei1|Datei2|..."
Fehler: Setzt das @error Flag auf ungleich null.
@error: 1 - Keine Datei ausgewählt.
2 - Falscher Dateifilter

Bemerkungen

Die Filter sind, wie im Beispiel zu sehen, mit Semikolon zu trennen.
Multifiltergruppen werden durch einen Strich "|" getrennt.

Wenn der Dateinamensvorschlag angegeben ist, müssen auch die Optionen angegeben sein.
Wenn keine Option benötigt wird, muss als Wert 0 verwendet werden.

Besondere Windows-Ordner (wie z.B "Eigene Dateien") können manchmal auch als Startverzeichnis gesetzt werden; siehe Anhang CLSIDs besonderer Ordner.

@WorkingDir wird bei erfolgreichem Rückgabewert geändert.

Verwandte Funktionen

FileSaveDialog, FileSelectFolder, StringSplit

Beispiel

Beispiel 1

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich der Nachricht die in FileOpenDialog dargestellt werden soll.
    Local Const $sMessage = "Strg oder Shift drücken um mehrere Dateien auszuwählen."

    ; Zeigt einen Öffnen-Dialog an um eine Liste von Dateien auszuwählen.
    Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "Bilder (*.jpg;*.bmp)|Videos (*.avi;*.mpg)", BitOR($FD_FILEMUSTEXIST, $FD_MULTISELECT))
    If @error Then
        ; Zeigt die Fehlermeldung.
        MsgBox($MB_SYSTEMMODAL, "", "Keine Dateien ausgewählt.")

        ; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
        FileChangeDir(@ScriptDir)
    Else
        ; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
        FileChangeDir(@ScriptDir)

        ; Ersetzt im von FileOpenDialog zurückgegebenen String "|" mit @CRLF.
        $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)

        ; Zeigt die Liste der ausgewählten Dateien.
        MsgBox($MB_SYSTEMMODAL, "", "Es wurden folgende Dateien ausgewählt:" & @CRLF & $sFileOpenDialog)
    EndIf
EndFunc   ;==>Example

Beispiel 2

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich der Nachricht die in FileOpenDialog dargestellt werden soll.
    Local Const $sMessage = "Bitte eine einzelne Datei eines Types auswählen."

    ; Zeigt einen Öffnen-Dialog an um eine Datei auszuwählen.
    Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "Alle (*.*)", $FD_FILEMUSTEXIST)
    If @error Then
        ; Zeigt die Fehlermeldung.
        MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")

        ; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
        FileChangeDir(@ScriptDir)
    Else
        ; Ändert das Arbeitsverzeichnis (@WorkingDir) zurück in den Skriptordner so wie FileOpenDialog es auf das zuletzt ausgewählte Verzeichnis ändert.
        FileChangeDir(@ScriptDir)

        ; Ersetzt im von FileOpenDialog zurückgegebenen String "|" mit @CRLF.
        $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)

        ; Zeigt die Liste der ausgewählten Dateien.
        MsgBox($MB_SYSTEMMODAL, "", "Es wurden folgende Datei ausgewählt:" & @CRLF & $sFileOpenDialog)
    EndIf
EndFunc   ;==>Example