robierzo 发表于 2022-7-5 17:06:38

获取文件名列表

我需要在文件夹中获得一个带有特定扩展名的文件名的列表。
例子:
文件夹:c:\temp\drawings
扩展名:txt
 
结果:
(name1 name2 name3 ..... n)
 
非常感谢。

Tharwat 发表于 2022-7-5 17:22:14

确保有两个反斜杠或一个正斜杠,如下所示;
 
(vl-directory-files "c:\\temp\\drawings" "*.txt" 1)

David Bethel 发表于 2022-7-5 17:30:38

在谷歌上搜索DosLib
 
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwix2KC6ud3PAhXJVT4KHXx1ClwQFggcMAA&url=http%3A%2F%2Fwww.en.na.mcneel.com%2Fdoslib.htm&usg=AFQjCNEiiCL_-fUuMGCIY2LFD0ZadTttKw&sig2=nPsrEKbp23jCFI3XKNW81A&bvm=bv。135974163,d.cWw
 
它比vl强大得多?????

robierzo 发表于 2022-7-5 17:38:54

非常感谢你。
使用Tharwat的表达式。太完美了。
 
谢谢你,大卫。

marko_ribar 发表于 2022-7-5 17:54:17

对于无限深度的子文件夹。。。
 
 

(defun _findfiles ( libraryrootprefix filenamepattern / subs subfolderss subfs folders fl ) ;;; (_findfiles "F:\\ACAD ADDONS-NEW\\" "profile*.lsp")

(defun subs ( folder )
   (setq subfolders (vl-remove "." (vl-remove ".." (vl-directory-files folder nil -1))))
   subfolders
)

(defun subfolderss ( rootfolder / subfolders )
   (subs rootfolder)
   (if subfolders
   (foreach sub subfolders
       (subfolderss (strcat rootfolder "\\" sub))
       (setq subfs (cons (strcat rootfolder "\\" sub) subfs))
   )
   )
)

(setq libraryrootprefix (vl-string-right-trim "\\" libraryrootprefix))
(subfolderss libraryrootprefix)
(setq folders (append (list libraryrootprefix) subfs))
(foreach folder folders
   (foreach x (vl-directory-files (strcat folder "\\") filenamepattern 1)
   (setq fl (cons (strcat folder "\\" x) fl))
   )
)
(reverse fl)
)

HTH,M.R。

Tharwat 发表于 2022-7-5 17:57:11

不客气。

robierzo 发表于 2022-7-5 18:11:05

非常感谢你,马尔科。非常有趣。我会试试你的习惯。
非常感谢。
页: [1]
查看完整版本: 获取文件名列表