ou67169488 发表于 2024-5-7 10:32:50

Autolisp删除文件夹

本帖最后由 ou67169488 于 2024-5-7 10:56 编辑

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

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


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

; 调用示例
(c:LoadDeleteDir)

p-3-ianlcc 发表于 2024-5-7 10:42:41

满不错的…构想
下载来试试看
谢谢您的分享!

mokson 发表于 2024-5-7 10:58:49

lisp 可以调用 SFO 对象(Scripting.FileSystem Object),实现删除文件/文件夹

tryhi 发表于 2024-5-7 11:48:58

本帖最后由 tryhi 于 2024-5-7 11:59 编辑

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


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

ou67169488 发表于 2024-5-7 11:58:32

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

:lol这个也是个解决思路,这个隐藏得太深了;P

ou67169488 发表于 2024-5-7 12:13:46

本帖最后由 ou67169488 于 2024-5-7 12:20 编辑

mokson 发表于 2024-5-7 10:58
lisp 可以调用 SFO 对象(Scripting.FileSystem Object),实现删除文件/文件夹
确实是可以实现的方式,涨姿势了
页: [1]
查看完整版本: Autolisp删除文件夹