显示AutoCAD风格的文件选择对话框.
(dos_getfilenav title default ext flags)
title
对话框标题.
default
默认文件名; 可以是空字符串("").
ext
默认文件扩展名. 如果扩展名是空字符串("")则默认为*(所有文件).
flags
一个整数值(位码), 控制对话框的行为. 可用的位码如下.
1 (bit 0) |
新建文件. |
如果即没有设置位码0(打开)也没有设置位码2, 只接受默认的扩展名(或无). 如果没有输入扩展名, 将使用默认的扩展名. 如果用户输入的扩展名不在默认范围内, 会显示一个"无效文件名"的消息框并且用户必须再次尝试或取消. 如果设置了位码0(新建)但没有设置位码2, 当输入的文件名不包含扩展名时会自动加上默认的扩展名. 注意如果扩展名不在默认范围内, 默认的扩展名仍然会添加在文件名之后从而形成多级扩展名. 例如, 如果用户输入test.dwg而默认的扩展名是.txt, 那么文件名将返回test.dwg.txt. 如果输入符合默认的扩展名, 就不会出现多余的扩展名了. 例如, 如果默认扩展名是.txt并且用户输入的是test.txt, 那么将返回test.txt. 如果没有设置位码0(打开)而设置了位码2, 任何扩展名(包括空的)都是可以接受的. 如果用户没有输入扩展名, 也不会使用默认的; 文件会没有扩展名. 如果即设置了位码0(新建)也设置了位码2, 那么任何输入的文件名都是可接受的(带不带扩展名都行)
|
2 (bit 1) |
未使用 |
位码1未使用并保留.
|
4 (bit 2) |
允许用户输入任意的文件扩展名 |
控制使用文件扩展名. 如果设置了位码2, 任何扩展名(包括空的)都可以使用. 如果没有设置位码2, 并且用户也没有输入扩展名, 这个函数仅接受指定的扩展名并且会把扩展名连接到文件名之后. (请看上面关于位码0和位码2的不同组合产生的不同效果.)
|
8 (bit 3) |
首先在库中搜索输入的文件名 |
如果指字一位码8但没有指定位码0, 这个函数会首先在库中搜索输入的文件名. 如果在库搜索路径中找到文件, 将会去掉目录仅返回文件名. (如果在不同的目录中发现了同名文件时路径名不会去掉.) 如果没有设置位码3, 这个函数会返回完整的文件名, 包含路径名. 如果你想要使用这个对话框打开一个最后调用搜索(FindFile)找到的已经存在的文件名并保存图形(或其它数据)时, 设置位码3.
|
16 (bit 4) |
把第二个参数解释成路径或目录, 而不是文件名.
|
如果设置了这个位码(或默认参数末尾采用了分界符, 例如"/acad/support/"), 则路径仅解释成路径名, 这个函数假定没有默认的文件名. 它会在目录列表中显示路径, 保持文件名输入框留空, 并禁用默认按钮. |
32 (bit 5) |
禁止显示警告对话框, 其中包括当新文件已经存在, 相同文件名已经打开.
|
如果设置了这个位码并且同时设置了位码0(意思是文件存在), 即使文件已经存在, 通知用户文件已存在的警告对话框也不会显示. |
64 (bit 6) |
当用户输入URL时禁止跳转到远程文件
|
如果设置了这个位码同时用户输入一个URL, 系统不会跳转, 取而代之的是返回URL. |
128 (bit 7) |
禁止URL
|
如果设置了这个位码同时用户输入了URL, 将会返回一个错误. 注意这个位码会取代"禁止跳转"位码(6). |
256 (bit 8) |
强制指定的初始化目录
|
如果指定了这个位码, 初始化目录被强制指定为第二个参数. 如果不设置, 初始化目录会从Windows注册表查找上一次使用时所浏览的目录. 如果这是第一次使用, 则指定初始化目录为当前目录. |
512 (bit 9) |
禁止FTP站点
|
如果设置了这个位码, FTP站点不会出现也不准浏览. |
1024 (bit 10) |
禁止Buzzsaw
|
如果设置了这个位码, Buzzsaw不可见或不能浏览.. |
2048 (bit 11) |
只能浏览和选择文件夹.
|
如果设置了这个位码, 对话框将只显示文件夹, 只允许选择文件夹. |
4096 (bit 12) |
允许多项选择 |
如果设置了这个位码, 对话框允许选择多个文件(不支持位码11). |
如果位码11(2048)和12(4096)未指定, 返回被选文件名的完整路径. 类似于dos_getfiled.
如果指定位码11(2048), 返回所选文件夹的完整路径. 类似于dos_getdir.
如果指定位码12(4096), 返回所选文件名的列表. 类似于dos_getfilem. 注意, 第一个元素是被选文件的完整路径.
nil 取消或出错时.
Command: (dos_getfilenav "Select Lisp Files" "C:\\Program Files\\AutoCAD 2007\\Support\\" "lsp" 8)
"C:\\Program Files\\AutoCAD 2006\\Support\\3d.lsp"
Command: (dos_getfilenav "Select Lisp Files" "C:\\Program Files\\AutoCAD 2007\\Support\\" "lsp" 4104)
("C:\\Program Files\\AutoCAD 2007\\Support\\" "3darray.lsp" "3d.lsp")