明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1537|回复: 2

[函数] 怎样可以不用选择文件夹呢

[复制链接]
发表于 2013-3-2 10:28:46 | 显示全部楼层 |阅读模式
这是本论坛的一个删除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)
    (if  Folder
      (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
发表于 2013-3-2 11:25:07 | 显示全部楼层
(if (and (setq folder (BrowseForFolder "选择要删除bak的文件夹: "))
改成===>
(if (and (setq folder "要删除bak的文件夹全路径")
 楼主| 发表于 2013-3-2 12:59:12 | 显示全部楼层
嗯,可以了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-1 22:46 , Processed in 0.177224 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表