FileSaveDialog

首页  后退  前进

FileSaveDialog
down2

FileSaveDialog

启动保存文件对话框.

 

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

参数

title

对话框窗口标题文本

init dir

对话框文件树中显示的起始目录

filter

文件类型筛选, 如:"所有文件 (*.*)" 或 "文本文档 (*.txt)"

或者多重筛选, 如 "所有文件 (*.*)|文本文档 (*.txt)" (见备注)

options

[可选] 对话框选项: 若有多个选项, 需使用 BitOR 连接所需的值.

   $FD_PATHMUSTEXIST (2) = 路径必须存在(如果用户键入一个路径,以反斜杠结束)

   $FD_PROMPTOVERWRITE (16) = 提示覆盖文件

 

常量定义在 FileConstants.au3

default name

[可选] 提示用户保存的文件名. 默认为空 ("")

hwnd

[可选] 对话框的父窗口句柄

返回值

成功:

返回选中文件的完整路径. 多选结果: "目录|文件1|文件2|..."

失败:

设置 @error 为非 0 值

@error:

1 - 文件选择失败.

2 - 错误的文件类型筛选

备注

多文件扩展名筛选用分号隔离, 见示例.

多文件类型筛选用管道符号 "|" 分隔.

 

如果有"default name"参数, 则"options"参数也必须指定. 如果不需指定选项, 则设置"options"参数值为 0.

 

Windows 的特定文件夹(如"我的文档") 也可以用来作为起始目录使用, 特定文件夹代码见 附录.

 

成功的返回会改变 @WorkingDir 的值.

 

函数示例

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Example()
Func Example()
    ; Create a constant variable in Local scope of the message to display in FileSaveDialog.
    Local Const $sMessage = "Choose a filename."
    ; Display a save dialog to select a file.
    Local $sFileSaveDialog = FileSaveDialog($sMessage, "::{450D8FBA-AD25-11D0-98A8-0800361B1103}", "Scripts (*.au3)", $FD_PATHMUSTEXIST)
    If @error Then
        ; Display the error message.
        MsgBox($MB_SYSTEMMODAL, "", "No file was saved.")
    Else
        ; Retrieve the filename from the filepath e.g. Example.au3.
        Local $sFileName = StringTrimLeft($sFileSaveDialog, StringInStr($sFileSaveDialog, "\", $STR_NOCASESENSE, -1))
        ; Check if the extension .au3 is appended to the end of the filename.
        Local $iExtension = StringInStr($sFileName, ".", $STR_NOCASESENSE)
        ; If a period (dot) is found then check whether or not the extension is equal to .au3.
        If $iExtension Then
            ; If the extension isn't equal to .au3 then append to the end of the filepath.
            If Not (StringTrimLeft($sFileName, $iExtension - 1) = ".au3") Then $sFileSaveDialog &= ".au3"
        Else
            ; If no period (dot) was found then append to the end of the file.
            $sFileSaveDialog &= ".au3"
        EndIf
        ; Display the saved file.
        MsgBox($MB_SYSTEMMODAL, "", "You saved the following file:" & @CRLF & $sFileSaveDialog)
    EndIf
EndFunc   ;==>Example

----------------------------------------

 

该函数可以通过命令 exect 调用

参见:

FileOpenDialog, FileSelectFolder

例子
copy

exect=$var_s=FileSaveDialog('Выберите~~имя.','::{450D8FBA-AD25-11D0-98A8-0800361B1103}','Скрипт(*.aut;*.au3)|Текстовый~~файл(*.ini;*.txt)',2)||Eval('var_s')?_ViewValues('$var_s'):_Exit() ;; 显示文件保存对话框。如果未选择,则输出

up2

tcimage © Аверин Андрей для Total Commander Image Averin-And@yandex.ru