找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1751|回复: 9

[求助] 用VLISP删除文件,如何放到垃圾箱里面,而不是永久删除?

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-6 22:39:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
用VLISP删除文件,如何放到垃圾箱里面,而不是永久删除?
用 vl-file-delete 是把文件永久删除了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3884个

财富等级: 富可敌国

发表于 2017-6-10 20:57:39 | 显示全部楼层
应该是把文件移动到垃圾箱里
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2017-6-11 13:33:28 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2017-6-11 13:34 编辑

这个好像办不到。当时G版写了一个程序,不断用时间为文件名来保存,经使用,一旦崩溃,这些产生的文件也全部消失。Highflybird大师,清除cad垃圾文件的程序中,办到了移到“回收站”中,可能不是用的lisp语言。我希望Highflybird把这个函数独立出来,然后我加载当一个函数使用,结果Highflybird没回
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

发表于 2017-6-11 16:24:47 | 显示全部楼层
文件系统对象有移动的方法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-11 16:26:43 | 显示全部楼层

回收站是含有特殊字符的文件夹,moveFile 不支持
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-6-11 16:32:08 | 显示全部楼层
  1. (defun recycle (filespec / shell folder items file)
  2.   (defun getobject (progid)
  3.     (vla-getinterfaceobject (vlax-get-acad-object) progid)
  4.   )
  5.   (defun extract-filename (pathstr)
  6.     (strcat (vl-filename-base pathstr)
  7.             (vl-filename-extension pathstr)
  8.     )
  9.   )
  10.   (defun release (objlist)
  11.     (mapcar
  12.       '(lambda (obj)
  13.          (if (not (vlax-object-released-p obj))
  14.            (vlax-release-object obj)
  15.          )
  16.        )
  17.       (if (listp objlist)
  18.         objlist
  19.         (list objlist)
  20.       )
  21.     )
  22.   )
  23.   (setq invoke vlax-invoke-method)
  24.   (setq shell (getobject "Shell.Application"))
  25.   (setq folder
  26.          (invoke shell
  27.                  'NameSpace
  28.                  (vl-filename-directory filespec)
  29.          )
  30.   )
  31.   (setq items (invoke Folder 'Items))
  32.   (setq file (invoke items 'item (extract-filename filespec)))
  33.   (invoke file 'InvokeVerbEx "&Delete")
  34.   (release (list file items folder shell))
  35.   nil
  36. )



以前收的一段代码,使用 (invoke file 'InvokeVerbEx "&Delete") ,"&Delete" 可以删除到回收站,但是这个和操作系统语言相关,&Delete 可以在英文WIN下执行,中文试了,不行, 不知道哪位高手知道在中文WIN下,这个删除的上下文 &Delete 该怎么写?


上面代码的&Delete 如果改成 Delete,是执行永久删除的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-11 16:56:17 | 显示全部楼层

中文版windows这样改下试试

  1. (invoke file 'InvokeVerb "Delete")
复制代码

评分

参与人数 1D豆 +5 收起 理由
marting + 5 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-6-11 17:06:37 | 显示全部楼层
本帖最后由 marting 于 2017-6-11 17:09 编辑

OK了,行了

QQ截图20170611170939.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-6-11 17:14:43 | 显示全部楼层
本帖最后由 marting 于 2017-6-11 17:21 编辑

有个问题,如果回收站属性设置了 删除提示,如何把这个提示选项去掉,删除到回收站后再把属性改回来。

ActiveX有方法吗? 应该是保存在注册表里面吧,哪个值呢?

QQ截图20170611171346.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-11 17:31:46 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2017-6-11 18:59 编辑

有办法,需要使用wmi备份一个键值,删除前修改,完成后恢复
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer 键下 ShellState,这个值是 DWORD 二进制,把第四个 改成 39

  1. Function vFn_File_Recycle (vFilePath)
  2. 'Sends the file 'vFilePath' to the recycle bin without any delete confirmation. Returns 0 for no
  3. 'error, else returns the Err.Number.
  4. '---------------------------------------------------------------------------------------------------
  5.   On Error Resume Next
  6.   'VERIFY FILE EXISTS
  7.     Set f_ObjFSO = CreateObject("Scripting.FileSystemObject")
  8.       If Not f_ObjFSO.FileExists(vFilePath) Then vExists = 0 Else vExists = 1
  9.   'CONTINUE IF FILE EXISTS
  10.     If vExists = 1 Then
  11.     'BACKUP CURRENT USER RECYCLE BIN SETTINGS
  12.       Set f_ObjReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
  13.         f_ObjReg.GetBinaryValue &H80000001, "Software\Microsoft\Windows\CurrentVersion\Explorer", "ShellState", vStateArr
  14.         vBackupState = vStateArr
  15.         vStateArr(4) = 39
  16.         f_ObjReg.SetBinaryValue &H80000001, "Software\Microsoft\Windows\CurrentVersion\Explorer", "ShellState", vStateArr
  17.     'INVOTE SHELL APPLICATION DELETE COMMAND
  18.       Set f_ObjShell = CreateObject("Shell.Application").NameSpace(0).ParseName(vFilePath).InvokeVerb("delete")
  19.     'RESTORE USER RECYCLE BIN SETTINGS
  20.         f_ObjReg.SetBinaryValue &H80000001, "Software\Microsoft\Windows\CurrentVersion\Explorer", "ShellState", vBackupState
  21.       End If
  22.   'CHECK FOR ERRORS AND CLOSE THE FUNCTION
  23.     If Err.Number <> 0 Then vFn_File_Recycle = 0 Else vFn_File_Recycle = Err.Number
  24.     On Error Goto 0
  25.   End Function


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 04:27 , Processed in 0.405569 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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