明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1258|回复: 6

[讨论] 用循环法,删除指定目录下某类型文件

[复制链接]
发表于 2022-9-12 15:48:04 | 显示全部楼层 |阅读模式
;;用循环法,删除指定目录下某类型文件
  1. (defun GetFullPath (path)
  2.   (if (wcmatch path "*\\")
  3.     path
  4.     (strcat path "\\")
  5.   )
  6. )

  7. (defun C:a2d (/ A DIR DIRL F LST X)
  8.   (if (not **Initdir**)
  9.     (setq **Initdir** "D:\\")
  10.   )
  11.   ;;(setq LST (list (GetFolder3 "浏览文件夹" "包括子文件夹" **Initdir**)))
  12.   (setq LST (list "D:\\0000\\"));本示例删除D:\\0000\\下所有指定类型文件文件,包括子目录
  13.   (foreach filter '("*.dwg" "*.pdf" "*.tif" "*.jpg" "*.exb" "*.doc" "*.xlsx" "*.docx")
  14.     (setq dirL LST)
  15.     (while (setq dir (car dirL))
  16.       (setq dirL (cdr dirL))
  17.       (setq f (vl-directory-files dir filter 1))
  18.       (setq f
  19.        (mapcar '(lambda (x)
  20.       (strcat (getfullpath dir) x)
  21.           )
  22.          f
  23.        )
  24.       )
  25.       (vl-every 'vl-file-delete f)  ;此句可改为处理文件

  26.       (setq a nil)
  27.       (setq a (vl-remove-if
  28.     '(lambda (subdir)
  29.        (member subdir '("." ".."))
  30.      )
  31.     (vl-directory-files dir nil -1)
  32.         )
  33.       )
  34.       (setq a (mapcar (function (lambda (x) (strcat dir x "\\"))) a))
  35.       (setq dirL (append dirL a))
  36.     )
  37.   )
  38.   (princ)
  39. )



评分

参与人数 2明经币 +2 收起 理由
ssyfeng + 1 赞一个!
guosheyang + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-9-12 16:40:12 | 显示全部楼层
感谢黄大师共享!
发表于 2022-9-12 16:50:31 | 显示全部楼层

感谢黄大师共享!
发表于 2022-9-12 19:47:11 | 显示全部楼层
可惜删除不了只读文件

点评

http://bbs.mjtd.com/thread-186014-1-1.html  发表于 2022-9-12 20:11
发表于 2022-9-13 08:17:25 | 显示全部楼层
感谢黄大师共享!
发表于 2022-9-13 08:39:28 | 显示全部楼层
谢谢分享,可惜不会结合修改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-15 13:36 , Processed in 0.177432 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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