计算文件数量i
你好有没有办法使用autolisp编码计算文件夹中的文件数。
谢谢! 我假设除了右键点击文件夹并选择属性之外,你还需要其他东西? 只是一个例子
(if (setq f (vl-directory-files "C:\\Users\\Tharwat\\Desktop\\New Folder" nil 1))
(length f)
)
(vl-load-com)
(defun c:FOO (/ *error* oShell oFolder path i)
(defun *error* (msg)
(if oShell
(vlax-release-object oShell)
)
(cond ((not msg)) ; Normal exit
((member msg '("Function cancelled" "quit / exit abort"))) ; <esc> or (quit)
((princ (strcat "\n** Error: " msg " ** "))) ; Fatal error, display it
)
(princ)
)
(if
(and
(setq oShell (vla-getinterfaceobject
(vlax-get-acad-object)
"Shell.Application"
)
)
(setq oFolder (vlax-invoke
oShell
'BrowseForFolder
(vla-get-hwnd acApp)
"Select folder to search:"
0
(+ 1 64 256)
)
)
(setq path (vlax-get-property
(vlax-get-property oFolder 'Self)
'Path
)
)
)
(progn
(prompt (strcat "\nSelected folder: \"" path "\" "))
(prompt
(strcat
"\n"
(itoa (setq i (length (vl-directory-files path "*.*" 1))))
(if (= 1 i)
" file "
" files "
)
"found."
)
)
)
)
(*error* nil)
)
原因可能是我试图根据文件中绘图的编号在属性中输入一个值。 好的,谢谢你,我几乎需要它,我会解决剩下的。
我变了
(if (setq f (vl-directory-files (getvar 'dwgprefix) nil 1))
(length f)
)
问题是,自从文件打开后,它就开始计数了。dwl和。dwl2
但就像上面说的,我会解决的
干杯&啤酒!
您必须相应地设置vl目录文件函数的扩展参数。。。例如“*.dwg”。
那就玩这个吧
(if
(and (setq
f (vl-directory-files
(getvar 'dwgprefix)
nil
1
)
)
(setq l (vl-remove-if '(lambda (ex) (wcmatch ex "*.dwl,*.dwl2")) f))
)
(length l)
)
OP是否试图量化除*之外的一切。dwl*文件,还是一个或多个特定扩展名的所有文件? 我正在试着得到。dwg文件。
但我想解决剩下的问题。
谢谢!
页:
[1]
2