宝哥软件园

如何使用VBA删除文件或文件夹到回收站?

编辑:宝哥软件园 来源:互联网 时间:2021-09-20

使用VBA代码,如何删除文件或文件夹到回收站?

RmDir语句、Kill语句和FileSystemObject中的语句会完全删除文件或文件夹,没有回旋的余地。

答:有点复杂,因为需要WindowsAPI的帮助。以下是代码:

' API语句。

声明函数SHFileOperation Lib " shell32.dll "别名" shfile operationa "(lpFileOp As shfileop struct)为Long

SHFILEOPSTRUCT类型

一样长

一样长

从字符串形式

作为字符串的pTo

整数形式的模糊标签

fAnyOperationsAborted中止为布尔值

尽可能长

作为字符串

结束类型

子回收文件()

Dim文件操作为SHFILEOPSTRUCT

昏暗的灯转得一样长

将文件名改为字符串

“dim SF文件夹为字符串”声明表示要删除的文件夹字符串。

s filename=application . getopen filename(filefilter :=" excel工作簿,*。xls *。xls* ",Title:=="选择要删除的文件")。

' Constfo _ delete=H3 '删除pFrom指定的文件或目录。

ConstFOF_ALLOWUNDO=h40 '可恢复(没有FOF_ALLOWUNDO不会放入回收站)。

Constfof _ noconfirmation=h10 '将对话框直接放入回收站,不显示它。

使用文件操作。wFunc=FO_DELETE。pFrom=sFileName。fflags=fof _ allowdofof _ no confirmation '将其直接删除到回收站,而不显示对话框。fflags=fof _ allowndo '显示一个对话框,供用户决定是否删除到回收站。fflags=fof _ no confirmation '删除而不显示对话框。

以…结尾

lReturn=SHFileOperation(文件操作)

末端接头

要删除文件夹,可以将变量sFolder设置为要删除的文件夹的路径,然后将其分配给pFrom。

上述代码运行后,将显示如下所示的对话框,提示您选择要删除的文件。

选择文件后,点击“打开”按钮,弹出如下图所示的对话框。单击“是”将所选文件删除到回收站。

在计划中,我们使用以下语句来实现目标:fflags=fof _ allowndo '显示一个对话框,供用户决定是否删除到回收站。

如果要删除文件并将其放入回收站而不显示提示对话框,请改用以下语句:fflags=fof _ allowndo fof _ noconfirm '直接删除到回收站,不显示对话框。

如果您不想显示提示对话框并将其完全删除而不将其放入回收站,请改用以下语句:fflags=fof _ noconfirmation '删除而不显示对话框。

这似乎有点复杂。如果想深入学习,可以参考关于Windows API介绍的相关资料。如果您只想在必要时使用这些代码,只需将上述代码复制到您自己的代码模块中,并进行一些小的调整。

更多资讯
游戏推荐
更多+