明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3186|回复: 8

如何删除文件夹里的文件

[复制链接]
发表于 2007-4-25 19:26:00 | 显示全部楼层 |阅读模式
请问用LISP 如何实现删除文件夹里的某一类文件,如*.txt。。。
发表于 2007-4-27 14:52:00 | 显示全部楼层
c3a139发表于2007-4-26 16:59:00随便再问一下,lambda (x / f)中/有什么用?在下面没用到

lambda 是定义临时函数,和 defun 后面的 (x / y) 意义相同。“/”前面的是参数,后面的是变量,因为临时函数引用了变量 f ,所以放在 “/ ”后面,以区别函数之外的 " f '

例如:
(setq x T)       ;;将变量 x 赋值为 T
(defun test1 (/ x)
  (not x)
)
(test1)          ;;返回 T

而:
(setq x T)       ;;将变量 x 赋值为 T
(defun test1 ()
  (not x)
)
(test1)          ;;返回 nil

回复 支持 1 反对 0

使用道具 举报

发表于 2007-4-26 10:40:00 | 显示全部楼层

(defun test (dir extn / finis)
  (if (vl-file-directory-p dir)
    (progn
      (setq finis (substr dir (strlen dir) 1))
      (if (or (/= finis "\\") (/= finis "/"))
        (setq dir (strcat dir "\\"))
      )
      (mapcar '(lambda (x / f)
                 (if (findfile (setq f (strcat dir x)))
                   (vl-file-delete f)
                 )
               )
              (vl-directory-files dir extn 1)
      )
    )
  )
)

;;测试
 (test "c:\\temp" "*.*")
 (test (getenv "tmp") "*.bak")

 楼主| 发表于 2007-4-26 12:12:00 | 显示全部楼层

运行了一下,错误,参数太少

(mapcar '(lambda (x / f)
                 (if (findfile (setq f (strcat dir x)))
                   (vl-file-delete f)
                 )
               )
这一段的作用也不太明白

发表于 2007-4-26 14:01:00 | 显示全部楼层

我运行没问题啊。

test 共两个参数,你有没有少

(test <路径> <扩展名:如*.*, *.txt>)

      (mapcar '(lambda (x / f)
                 (if (findfile (setq f (strcat dir x)))
                   (vl-file-delete f)        ;;删除下面表中的文件
                 )
               )
              (vl-directory-files dir extn 1);;得出文件列表
      )

 楼主| 发表于 2007-4-26 16:59:00 | 显示全部楼层
本帖最后由 作者 于 2007-4-26 17:47:05 编辑

谢谢你,可以用,是我操作的问题,再次感谢!

随便再问一下,lambda (x / f)中/有什么用?在下面没用到
 楼主| 发表于 2007-4-28 17:11:00 | 显示全部楼层
明的了,谢谢!
发表于 2016-6-8 10:40:21 | 显示全部楼层
给个赞,很有用
谢谢
发表于 2018-7-18 12:54:33 | 显示全部楼层
caoyin 发表于 2007-4-26 10:40
(defun test (dir extn / finis)&nbsp; (if (vl-file-directory-p dir)&nbsp;&nbsp;&nbsp; (progn&nbsp;&nb ...

谢谢楼主,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 13:51 , Processed in 0.158799 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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