[LISP]搜索文件夹
<P>请问:有没有办法用LISP搜索所有文件夹及子文件夹下面的子文件.....子文件夹....子文件夹.......最终搜索点为所需要的文件夹。</P> 谢谢,上面的代码,搜索所有的文件真是太好用了 推存使用DOSLIB。很方便。 tcsl9621发表于2006-12-14 10:11:00static/image/common/back.gif推存使用DOSLIB。很方便。<p>DOSLIB是软件还是命令?</p> <p>有人说FINDFILE可以搜索目录,那为什么(findfile "support")为NIL?SUPPORT不是在CAD目录里吗?</p><p></p> 本帖最后由 作者 于 2008-10-8 15:44:20 编辑 <br /><br /> <p>DOSLIB 是一个二次开发的插件</p><p>各位:我想弄一个专门杀掉某个CAD病毒的lisp程序,可是用Vlisp好像无法遍历目录来搜索某个文件?</p> <p>这个也许能帮你实现</p><p>(defun getfiles (dir / out)<br/> (getfilesa dir)<br/> out<br/>)<br/>(defun getfilesa (dir / files )<br/> (cond<br/> ( (null dir))<br/> ( (vl-file-directory-p dir)<br/> (setq dirr (cons dir dirr));;文件夹目录<br/> (if (setq files (vl-directory-files dir))<br/> (progn<br/> (setq files (cddr files))</p><p> (mapcar 'getfilesa (mapcar '(lambda (x) (strcat dir "\\" x)) files))<br/> ) ) ) <br/> ( t (setq out (cons dir out))) <br/>)<br/>(setq outfiles out)<br/> )</p> <p>这种问题用递归算法可以实现</p> 本帖最后由 作者 于 2008-10-9 21:19:21 编辑 <br /><br /> <p>用dos命令 dir /? 看帮助</p><p>cd c:\aaa</p><p>dir bb* /ad > c:dirlst.txt</p><p>读取文本提取</p><p>也许有人说用dos太土,写文本再读文本步骤复杂。但是经测试,对范围大的搜索(需要搜索多重子目录什么的),dos比vlisp快,不是快一点点。</p><p>尤其晕倒的是,如果对搜索过的目录再次进行搜索,速度快的可以让无能的人也很爽(当次开机有效,即便关了cad再开也不影响此效果)。我不知道为什么,因为我对系统运行的方式了解不够。</p><p>附件解压,加载后输入 xdirx命令</p> 本帖最后由 作者 于 2008-10-9 21:38:43 编辑 <br /><br /> <p>;| xdirx = 超快感搜索令 v1.1 (对话框B版)-----ok!!----by 狂刀</p><p>v1.0 2005.10<br/>v1.1 2006.5<br/>说明: 1. 因为太快了,根本不需要在状态条显示搜索过程!!故名"超快感搜索令".<br/> 2. 参考: c:xfind = 超快感搜索令 v1.0 (函数版)<br/>技巧: 1. 应用到 添加acad.pgp并更新re-init技术!<br/> 2. 应用到调用系统选择目录对话框.<br/> 3. 应用到shell参数4不闪屏。<br/> 4. 应用到外部命令: dir /s/b >文件名 取得搜索结果.<br/> 5. 应用到 自动生成对话框文件并加载. <br/> 6. !!! 有搜索记忆功能,只要搜过一次,下次再搜,即便是不同的通配符格式,也是眨眼之间完成,可能不到1秒!!<br/> 7. 可记忆上次搜索的路径.支持含空格搜索,支持仅搜索目录。 eg: <font face="宋体" size="2">*.lsp,a?b*.fas,aa*.dwg</font><br/>测试:<br/>;; 8G硬盘.<br/>命令: xfindx<br/>|;</p><p><font face="宋体" size="2">1.速度<br/>搜索一次40g硬盘(含10g左右文件)用时1分钟左右。<br/>硬盘只要搜索过一次,以后再搜索,无论是什么通配符文件,均在1秒钟左右。cad退出也没有关系。只要不重新启动。再次进入cad,也是1秒左右(比win搜索还快)。<br/>2.可实时加载<br/><br/>win搜索的优势:<br/>可搜索文件内字符<br/>搜索到的文件马上显示.</font></p><p><font face="宋体" size="2">v1.1 2006.5<br/>说明: 1. 因为太快了,根本不需要在状态条显示搜索过程!!故名"超快感搜索令".<br/>2. 参考: <br/>3 !!! 有搜索记忆功能,只要搜过一次,下次再搜,即便是不同的通配符格式,也是眨眼之间完成,可能不到1秒!!<br/>4. 可记忆上次搜索的路径.<br/><br/>搜索一次40g硬盘(含10g左右文件)用时1分钟左右。<br/>硬盘只要搜索过一次,以后再搜索,无论是什么通配符文件,均在1秒钟左右。cad退出也没有关系。只要不重新启动。再次进入cad,也是1秒左右。<br/>我的电脑 cpu:amd 3200+</font><br/></p><p>参考帖子:</p><p><a href="http://www.xdcad.net/forum/showthread.php?s=&postid=2801233#post2801233">http://www.xdcad.net/forum/showthread.php?s=&postid=2801233#post2801233</a></p><p>及</p><p><a href="http://www.xdcad.net/forum/showthread.php?s=&threadid=553068&perpage=15&display=&pagenumber=1">http://www.xdcad.net/forum/showthread.php?s=&threadid=553068&perpage=15&display=&pagenumber=1</a></p><p><br/></p>
页:
[1]
2