(setq WinDlg (vlax-create-object "MSComDlg.CommonDialog")) (setq Maxfiles 32767) (setq Flags (+ 4 512 524288 1048576 1024)) (vlax-put-property WinDlg 'CancelError :vlax-true) (vlax-put-property WinDlg 'MaxFileSize Maxfiles) (vlax-put-property WinDlg 'Flags Flags) (vlax-put-property WinDlg 'DialogTitle strTitle) (vlax-put-property WinDlg 'Filter strFilter) (vlax-put-property WinDlg 'InitDir strInitDir) (setq Catchit nil) (vlax-invoke-method WinDlg 'ShowOpen) (setq mFiles (vlax-get WinDlg 'Filename)) 上面那段lisp代码的最后一句(setq mFiles (vlax-get WinDlg 'Filename)) ,在获得通用对话框的文件名属性时,如果选择的是一个文件,则得到这个文件的 绝对路径名,如果选择的是多个文件,则得到的是包含这多个文件的文件夹的绝对路径名。现在需要做的是,如果选择的是多个文件,得到的文件名应该是:例如,选择了c:\test目录下的a.txt, b.xls, c.dwg三个文件,最后得到的文件名是 "c:\\test\000a.txt\000b.xls\000c.dwg"。 哪位大侠知道的话,望告知实现方法,不胜感激。 |