Functions > FileDirDisk >


FileSaveDialog

Ouvre un dialogue pour permettre à l'utilisateur d'enregistrer un fichier.

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

Paramètres

title Titre de la boîte de dialogue.
init dir Répertoire initial proposé à l'utilisateur.
filter Un seul filtre de type de fichier tel que "All (*.*)" ou "Text files (*.txt)" ou plusieurs groupes de filtres tels que "All (*.*)|Text files (*.txt)" (Consultez les Remarques).
options [optionnel] Options de dialogue: Pour utiliser plusieurs options, rassemblez-les avec BitOr.
    $FD_PATHMUSTEXIST (2) = Le chemin doit exister (si l'utilisateur tape un chemin, se terminant par un contre-slash)
    $FD_PROMPTOVERWRITE (16) = Invite à écraser le fichier

Les constantes sont définies dans FileConstants.au3
default name [optionnel] Nom de fichier à suggérer à l'utilisateur pour l'enregistrement. Par défaut, chaîne vide ("").
hwnd [optionnel] Le handle de la fenêtre à utiliser comme parent pour ce dialogue.

Valeur de retour

Succès: Retourne le nom complet du fichier choisi. Le résultat pour les sélections multiples est au format "Répertoire|fichier1|fichier2|..."
Échec: Définit @error <> 0
@error: 1 - La sélection de fichier a échoué.
2 - Le filtre de fichier est incorrect.

Remarques

Séparez les filtres de fichiers avec un point-virgule comme le montre l'exemple.
Plusieurs groupes de filtres doivent être séparés par une barre verticale "|".

Si le nom par défaut est donné, les options doivent également être données. Si une option n'est pas désirée, utilisez 0 pour cette option.

Les dossiers spéciaux Windows (tel que "Mes Documents") peuvent parfois être défini comme le répertoire d'initialisation, Consultez l'Appendice.

@WorkingDir est modifié après un succès.

En relation

FileOpenDialog, FileSelectFolder

Exemple

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

Example()

Func Example()
    ; Crée une constante locale avec le message à afficher dans FileSaveDialog.
    Local Const $sMessage = "Choisir un fichier."

    ; Affiche une boîte de dialogue Enregistrer pour sélectionner un fichier.
    Local $sFileSaveDialog = FileSaveDialog($sMessage, "::{450D8FBA-AD25-11D0-98A8-0800361B1103}", "Scripts (*.au3)", $FD_PATHMUSTEXIST)
    If @error Then
        ; Affiche le message d'erreur.
        MsgBox($MB_SYSTEMMODAL, "", "Aucun fichier n'a été sauvegardé.")
    Else
        ; Récupére le nom du fichier à partir du chemin complet, par exemple Example.au3.
        Local $sFileName = StringTrimLeft($sFileSaveDialog, StringInStr($sFileSaveDialog, "\", $STR_NOCASESENSE, -1))

        ;Vérifiez si l'extension .au3 est ajoutée à la fin du nom de fichier.
        Local $iExtension = StringInStr($sFileName, ".", $STR_NOCASESENSE)

        ; Si un point est trouvé alors vérifie si l'extension est égale à .au3
        If $iExtension Then
            ; Si l'extension n'est pas égale à .au3 alors l'ajoute à la fin du chemin du fichier.
            If Not (StringTrimLeft($sFileName, $iExtension - 1) = ".au3") Then $sFileSaveDialog &= ".au3"
        Else
            ; Si aucun point n'a été trouvé alors l'ajoute à la fin du fichier.
            $sFileSaveDialog &= ".au3"
        EndIf

        ; Affiche le fichier enregistré.
        MsgBox($MB_SYSTEMMODAL, "", "Le fichier suivant a été enregistré:" & @CRLF & $sFileSaveDialog)
    EndIf
EndFunc   ;==>Example