明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1040|回复: 6

[函数] 提取指定文件夹及子文件夹下指定文件类型的文件列表

[复制链接]
发表于 2022-8-9 08:53:55 | 显示全部楼层 |阅读模式
本帖最后由 guosheyang 于 2022-8-10 13:58 编辑

     给朋友们分享个提取指定文件夹及子文件夹下指定文件类型的文件列表 的函数,请大家测试并提出问题 或者优化意见  谢谢!
   
      
;自定义函数:files_of_folder 作者ygs-羊羊羊,其中提取文件夹子文件夹的子函数来自73大师  
;提取指定文件夹及子文件夹下指定文件类型的文件列表                                                  
;执行 (files_of_folder(setq folder "D:\\新建文件夹 (7)") "*.dwg" )                       
;参数:folder 需提取文件的文件夹完整路径,file_suffix 需提取文件的文件后缀(均为字符串),注意 如果后缀设为"*.*" 则提取所有文件类型
;返回值:指定路径下得指定文件的列表                                                      

;主函数
(defun files_of_folder(folder file_suffix / WJJLB WJLB)
;(setq wjlb nil)
(setq wjjlb(xdirectory folder))
  (foreach x wjjlb
    (setq wjlb(cons(vl-directory-files x file_suffix 1)wjlb))
  )
    (apply 'append wjlb)
)
;以下两个子函数来自73大师
(defun xdirectory(folder);;;好象不含隐藏目录
  (setq folder(list(list folder)))
  (while(car(setq folder(cons(apply'append(mapcar'(lambda(x)(mapcar'(lambda(y)(strcat x"\\"y))(cddr(vl-directory-files X nil -1))))
             (car folder)))folder))))(apply'append folder))
(defun SubFolers(folder / folders *Fso fold xx);;;包含隐藏目录
  (defun xx(/ lst)
    (vlax-for x(vlax-get-property(vlax-invoke-method *fso 'getfolder fold)'SubFolders)
      (setq lst(cons(vlax-get-property x 'path)lst)))
    (reverse lst))
  (if(VL-FILE-DIRECTORY-P folder)
    (progn
      (setq *Fso(vlax-get-or-create-object"Scripting.FileSystemObject")
            folders(list(vlax-get-property(vlax-invoke-method *fso 'getfolder folder)'path))i 0)
      (while(setq fold(nth i folders))
        (setq folders(append folders(append(xx)))i(1+ i)))
      (vlax-release-object *Fso)
      folders)))


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
tigcat + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2022-8-9 14:41:02 | 显示全部楼层
感谢 tigcat朋友的支持!
发表于 2022-8-10 13:11:07 | 显示全部楼层
(files_of_folder(setq folder "D:/新建文件夹 (7)") "*.dwg" ),反斜扛改成正斜扛
 楼主| 发表于 2022-8-10 13:58:43 | 显示全部楼层
dingtiedt 发表于 2022-8-10 13:11
(files_of_folder(setq folder "D:/新建文件夹 (7)") "*.dwg" ),反斜扛改成正斜扛

(files_of_folder(setq folder "D:\\新建文件夹 (7)") "*.dwg" )     
这样 忘了矫正
发表于 2022-8-18 14:09:54 | 显示全部楼层
多谢分享了
发表于 2022-10-20 10:05:47 | 显示全部楼层

多谢分享了
发表于 2022-11-10 00:01:02 | 显示全部楼层
收藏了,感谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 02:49 , Processed in 0.183028 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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