明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 271|回复: 5

[经验] Autolisp删除文件夹

[复制链接]
发表于 2024-5-7 10:32 | 显示全部楼层 |阅读模式
本帖最后由 ou67169488 于 2024-5-7 10:56 编辑

Autolisp 删除文件夹方法(这个库也可以同时用于删除文件。)
Autolisp 本身并没有提供直接删除文件夹的函数。为了解决这一问题,我写了一个库,使得可以通过 Autolisp 直接调用 DLL 来删除文件夹。
适用版本:
  • DeleteDir3.5.dll 适用于 CAD 2010至2013
  • DeleteDir4.5.dll 适用于 CAD 2014及以上版本
  • 调用方法: 使用 (DeleteDir filepath) 函数,其中 filepath 为您想要删除的文件夹或文件的路径。
    返回值: 操作完成后,函数会返回以下值之一:

    • 成功删除 - 文件夹或文件已成功删除
    • 文件被占用 - 文件夹或文件当前被其他程序占用
    • 文件不存在 - 指定的路径不存在文件夹或文件



    1. ; 加载 DLL 文件
    2. (defun c:LoadDeleteDir ()
    3.   (vl-load-com)
    4.   (setq filepath "C:\\path\\to\\directory") ; 设置文件夹路径
    5.   (command "_netload" "DeleteDir3.5.dll")   ; 加载对应版本的 DLL
    6.   (DeleteDir filepath)                       ; 调用函数删除文件夹
    7. )

    8. ; 调用示例
    9. (c:LoadDeleteDir)

本帖子中包含更多资源

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

x
发表于 2024-5-7 10:42 | 显示全部楼层
满不错的…构想
下载来试试看
谢谢您的分享!
发表于 2024-5-7 10:58 | 显示全部楼层
lisp 可以调用 SFO 对象(Scripting.FileSystem Object),实现删除文件/文件夹
发表于 2024-5-7 11:48 | 显示全部楼层
本帖最后由 tryhi 于 2024-5-7 11:59 编辑

感谢楼主分享,不过有一个内部函数叫“rmdir”,用于删除文件夹
示例:
(try-load-hide-fun "rmdir")
(rmdir "C:\\Users\\tryhi\\Desktop\\a\\1")


如何加载看这里:[源码] 激活系统隐藏的函数

 楼主| 发表于 2024-5-7 11:58 | 显示全部楼层
tryhi 发表于 2024-5-7 11:48
感谢楼主分享,不过有一个内部函数叫“rmdir”,用于删除文件夹
示例:(rmdir "C:\%users\\tryhi\\Desktop ...

这个也是个解决思路,这个隐藏得太深了
 楼主| 发表于 2024-5-7 12:13 | 显示全部楼层
本帖最后由 ou67169488 于 2024-5-7 12:20 编辑
mokson 发表于 2024-5-7 10:58
lisp 可以调用 SFO 对象(Scripting.FileSystem Object),实现删除文件/文件夹

确实是可以实现的方式,涨姿势了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 20:37 , Processed in 0.249501 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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