Functions > FileDirDisk >


FileOpenDialog

Ouvre un dialogue permettant à l'utilisateur de choisir un fichier.

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

Paramètres

title Texte du titre de la boite de dialogue.
init dir Répertoire initial proposé à l'utilisateur.
filter Filtre unique du type de fichier tel que "Tous les fichiers (*.*)" ou "Fichiers texte (*.txt)" ou groupes de filtres multiples tels que "Tous les fichiers (*.*)|Fichiers texte (*.txt)" (Voir Remarques).
options [optionnel] Options du dialogue: Pour utiliser plus d'une option, regroupez les valeurs avec la fonction BitOR.
    $FD_FILEMUSTEXIST (1) = Le fichier doit exister (si l'utilisateur tape un nom de fichier)
    $FD_PATHMUSTEXIST (2) = Le chemin doit exister (si l'utilisateur tape un chemin, se terminant par un antislash)
    $FD_MULTISELECT (4) = Permettre la sélection multiple
    $FD_PROMPTCREATENEW (8) = Demande la création d'un nouveau fichier (s'il n'existe pas)

Les constantes sont définies dans FileConstants.au3
default name [optionnel] Nom de fichier suggéré à l'ouverture. Vide par défaut ("").
hwnd [optionnel] Le handle de la fenêtre à utiliser comme parent pour cette boîte de dialogue.

Valeur de retour

Succès: Retourne le chemin complet du (des) fichier(s) choisi. Le résultat pour des sélections multiples ests "Répertoire|fichier1|fichier2|..."
Échec: Définit @error <> 0.
@error: 1 - La sélection de fichier a échoué.
2 - Filtre de fichier incorrect

Remarques

Séparez les filtres de fichiers avec un point-virgule comme dans l'exemple.
Plusieurs groupes de filtres sont séparés par une barre verticale "|".

Si un nom par défaut est donné, les options doivent également être données. Si aucune des options n'est désirée, utilisez 0 pour le paramètre 'options'.

Les dossiers spéciaux de Windows (tels que "Mes Documents") peuvent être définis comme répertoire initial. Consultez l'Appendice.

@WorkingDir est modifié après un appel réussi.

En relation

FileSaveDialog, FileSelectFolder, StringSplit

Exemples

Exemple 1

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

Example()

Func Example()
    ; Crée une constante locale avec le message à afficher dans FileOpenDialog.
    Local Const $sMessage = "Appuyez sur Ctrl ou Shift pour choisir plusieurs fichiers."

    ; Ouvre une boîte de dialogue  pour sélectionner une liste de fichier(s).
    Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "Images (*.jpg;*.bmp)| Videos (*.avi;*.mpg)", $FD_FILEMUSTEXIST + $FD_MULTISELECT)
    If @error Then
        ; Affiche le message d'erreur.
        MsgBox($MB_SYSTEMMODAL, "", "Aucun fichier sélectionné.")

        ; Change le répertoire de travail (@WorkingDir) vers l'emplacement du répertoire de script comme FileOpenDialog l'a défini au dernier dossier consulté.
        FileChangeDir(@ScriptDir)
    Else
        ; Change le répertoire de travail (@WorkingDir) vers l'emplacement du répertoire de script comme FileOpenDialog l'a défini au dernier dossier consulté.
        FileChangeDir(@ScriptDir)

        ; Remplace les instances de "|" avec CRLF dans la chaîne retournée par FileOpenDialog.
        $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)

        ; Affiche la liste des fichiers sélectionnés.
        MsgBox($MB_SYSTEMMODAL, "", "Vous avez sélectionné les fichiers suivants:" & @CRLF & $sFileOpenDialog)
    EndIf
EndFunc   ;==>Example


Exemple 2

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

Example()

Func Example()
    ;Créez une constante locale avec le message à afficher dans FileOpenDialog.
    Local Const $sMessage = "Sélectionnez un seul fichier de n'importe quel type."

    ; Ouvre une boîte de dialogue pour sélectionner un fichier.
    Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
    If @error Then
        ; Affiche le message d'erreur.
        MsgBox($MB_SYSTEMMODAL, "", "Aucun fichier sélectionné.")

        ; Change le répertoire de travail (@WorkingDir) vers l'emplacement du répertoire de script comme FileOpenDialog l'a défini au dernier dossier consulté.
        FileChangeDir(@ScriptDir)
    Else
        ; Change le répertoire de travail (@WorkingDir) vers l'emplacement du répertoire de script comme FileOpenDialog l'a défini au dernier dossier consulté.
        FileChangeDir(@ScriptDir)

        ; Remplace les instances de "|" par @CRLF dans la chaîne renvoyée par FileOpenDialog.
        $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)

        ; Affiche le fichier sélectionné.
        MsgBox($MB_SYSTEMMODAL, "", "Vous avez choisi les fichiers suivants:" & @CRLF & $sFileOpenDialog)
    EndIf
EndFunc   ;==>Example