autolisp 编写查找c盘下所有文件夹内所有txt文件
时间: 2024-05-25 09:18:19 浏览: 76
以下是一个可能的Autolisp程序,它将查找C盘下所有文件夹内的所有txt文件并将它们列出:
(defun find-txt-files (folder)
(setq folder (strcat folder "\\*"))
(foreach file (vl-directory-files folder nil nil 1)
(if (and (not (equal "." (substr file 1 1)))
(not (equal ".." (substr file 1 2))))
(if (vl-file-directory-p file)
(find-txt-files file)
(if (equal "txt" (cdr (assoc 2 (vl-filename-split file))))
(princ (strcat file "\n")))))))
(find-txt-files "C:")
这个程序首先将给定的文件夹路径与通配符“*”结合起来,以获取该文件夹下的所有文件和文件夹。然后它遍历这个列表,并检查每个条目是否是一个文件夹或一个txt文件。如果是文件夹,则递归调用函数以查找其中的txt文件。如果是txt文件,则将其打印到AutoCAD命令行上。最后,我们将程序初始化为从C盘开始查找。
相关问题
autolisp 编写查找文件夹内所有txt文件
以下是一个示例代码,使用autolisp编写查找文件夹内所有txt文件:
```
(defun find-txt-files (dir)
(setq files (vl-directory-files dir "*.txt" 1))
(foreach file files
(princ file)
(terpri)
)
)
;; 示例用法:
(find-txt-files "C:\\MyFolder\\")
```
这个函数使用了 `vl-directory-files` 函数来查找指定文件夹内所有的txt文件,并将它们存储在 `files` 变量中。然后,使用 `foreach` 循环依次处理每个文件,并将文件名打印到控制台上。你可以将这个函数放到你的LISP文件中,然后使用 `find-txt-files` 函数来执行查找操作。注意,你需要将文件夹路径作为参数传递给函数。
阅读全文