怎样可以不用选择文件夹呢
这是本论坛的一个删除BAK文件的程序,忘记是哪位高手的了,我的BAK文件都在固定的一个文件夹里面,每次删除都要选择一次,有点麻烦,请高手帮忙改一下,在程序里面指定路径,使用的时候,直接输入命令就可以了,还望帮忙,谢谢!(defun c:00000(/ folder filelst)
(defun BrowseForFolder (PrmStr / ShlObj Folder FldObj OutVal)
(vl-load-com)
(setq
ShlObj (vla-getInterfaceObject
(vlax-get-acad-object)
"Shell.Application"
) ;_ 结束vla-getInterfaceObject
Folder (vlax-invoke-method ShlObj 'BrowseForFolder 0 PrmStr 0)
) ;_ 结束setq
(vlax-release-object ShlObj)
(ifFolder
(progn
(setq FldObj (vlax-get-property Folder 'Self)
OutVal (vlax-get-property FldObj 'Path)
) ;_ 结束setq
(vlax-release-object Folder)
(vlax-release-object FldObj)
OutVal
) ;_ 结束progn
) ;_ 结束if
) ;_ 结束defun
(if (and (setq folder (BrowseForFolder "选择要删除bak的文件夹: "))
(setq filelst (GetAllFiles folder "*.bak"))
) ;_ 结束and
(foreach v filelst
(vl-file-delete v)
) ;_ 结束foreach
) ;_ 结束if
(princ)
) ;_ 结束defun
(defun GetAllFiles (dir typ)
(append
(mapcar '(lambda (x) (strcat dir "\\" x))
(vl-directory-files dir typ 1)
) ;_ 结束mapcar
(apply 'append
(mapcar '(lambda (x) (GetAllFiles (strcat dir "\\" x) typ))
(vl-remove-if
'(lambda (x) (wcmatch x "`.,`.`."))
(vl-directory-files dir "*" -1)
) ;_ 结束vl-remove-if
) ;_ 结束mapcar
) ;_ 结束apply
) ;_ 结束append
) ;_ 结束defun (if (and (setq folder (BrowseForFolder "选择要删除bak的文件夹: "))
改成===>
(if (and (setq folder "要删除bak的文件夹全路径") 嗯,可以了,谢谢
页:
[1]