乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 19

[编程交流] 计算文件数量i

[复制链接]

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-5 22:35:55 | 显示全部楼层 |阅读模式
你好
 
有没有办法使用autolisp编码计算文件夹中的文件数。
 
谢谢!
回复

使用道具 举报

0

主题

6

帖子

6

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 22:39:57 | 显示全部楼层
我假设除了右键点击文件夹并选择属性之外,你还需要其他东西?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 22:45:10 | 显示全部楼层
只是一个例子
 
  1. (if (setq f (vl-directory-files "C:\\Users\\Tharwat\\Desktop\\New Folder" nil 1))
  2. (length f)
  3. )
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 22:46:15 | 显示全部楼层
  1. (vl-load-com)
  2. (defun c:FOO (/ *error* oShell oFolder path i)
  3. (defun *error* (msg)
  4.    (if oShell
  5.      (vlax-release-object oShell)
  6.    )
  7.    (cond ((not msg))                                                   ; Normal exit
  8.          ((member msg '("Function cancelled" "quit / exit abort")))    ; <esc> or (quit)
  9.          ((princ (strcat "\n** Error: " msg " ** ")))                  ; Fatal error, display it
  10.    )
  11.    (princ)
  12. )
  13. (if
  14.    (and
  15.      (setq oShell (vla-getinterfaceobject
  16.                     (vlax-get-acad-object)
  17.                     "Shell.Application"
  18.                   )
  19.      )
  20.      (setq oFolder (vlax-invoke
  21.                      oShell
  22.                      'BrowseForFolder
  23.                      (vla-get-hwnd acApp)
  24.                      "Select folder to search:"
  25.                      0
  26.                      (+ 1 64 256)
  27.                    )
  28.      )
  29.      (setq path (vlax-get-property
  30.                   (vlax-get-property oFolder 'Self)
  31.                   'Path
  32.                 )
  33.      )
  34.    )
  35.     (progn
  36.       (prompt (strcat "\nSelected folder: "" path "" "))
  37.       (prompt
  38.         (strcat
  39.           "\n"
  40.           (itoa (setq i (length (vl-directory-files path "*.*" 1))))
  41.           (if (= 1 i)
  42.             " file "
  43.             " files "
  44.           )
  45.           "found."
  46.         )
  47.       )
  48.     )
  49. )
  50. (*error* nil)
  51. )
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-5 22:49:19 | 显示全部楼层
原因可能是我试图根据文件中绘图的编号在属性中输入一个值。
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-5 22:52:37 | 显示全部楼层
好的,谢谢你,我几乎需要它,我会解决剩下的。
 
我变了
  1. (if (setq f (vl-directory-files (getvar 'dwgprefix) nil 1))
  2. (length f)
  3. )

 
问题是,自从文件打开后,它就开始计数了。dwl和。dwl2
 
但就像上面说的,我会解决的
 
干杯&啤酒!
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 22:57:48 | 显示全部楼层
 
您必须相应地设置vl目录文件函数的扩展参数。。。例如“*.dwg”。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 23:01:13 | 显示全部楼层
 
那就玩这个吧
 
  1. (if
  2. (and (setq
  3.         f (vl-directory-files
  4.             (getvar 'dwgprefix)
  5.             nil
  6.             1
  7.           )
  8.       )
  9.       (setq l (vl-remove-if '(lambda (ex) (wcmatch ex "*.dwl,*.dwl2")) f))
  10. )
  11.   (length l)
  12. )
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 23:04:15 | 显示全部楼层
 
OP是否试图量化除*之外的一切。dwl*文件,还是一个或多个特定扩展名的所有文件?
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-5 23:05:01 | 显示全部楼层
我正在试着得到。dwg文件。
 
但我想解决剩下的问题。
 
 
谢谢!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 06:09 , Processed in 0.973526 second(s), 83 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表