编写VB程序使得被删除的文件能够恢复

ZDNet软件频道 时间:2002-02-05 作者:ZDNET CHINA 特稿 |  我要评论()
本文关键词:VB
如果你要编写VB程序来删除不需要的文件,最简单的方法就是用Kill函数,可惜这是一张单程车票。如果用户不小心删除了文件,就没有办法挽回了。你可以用另外一种方法把要删除的文件发送到回收站,下面让我们看这是怎么工作的。
如果你要编写VB程序来删除不需要的文件,最简单的方法就是用Kill函数,可惜这是一张单程车票。如果用户不小心删除了文件,就没有办法挽回了。

Kill对于开发者来说是方便的,因为它不需要调用API函数。你所需要做的就是将文件的名字做为字符串表达式传递给这个函数。例如,Kill(App.Path & "1.txt"),然后文件就被删除了。但是如果你希望给你的用户一个完善的操作并确保文件可以恢复,你可以用另外一种方法把要删除的文件发送到回收站,而不是使用Kill函数。下面让我们看这是怎么工作的。

到回收站的旅行

这个技术的关键是SHFileOperation 函数,它包含在Shell32.dll中。Windows 95/98/Me/NT4.0/2000 都支持SHFileOperation 函数并允许对文件拷贝,移动,重命名和删除。你还能够使用它把文件送到回收站,这样用户就能够恢复它们了。

API 函数

通过调用SHFileOperation函数,你可以修改现有的对话框来移动文件并向用户反馈这个过程的状态。为了在一个Visual Basic程序中使用SHFileOperation函数,你必须包括下面的申明语句:
Public Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) As Long

如果操作成功的话,这个函数会返回0而错误发生时会返回非零值。

这个函数需要一个参数,即SHFILEOPSTRUCT结构体的一个指针。这个结构体包括了SHFileOperation函数正常工作所需的信息。

对于Visual Basic来说,SHFILEOPSTRUCT结构体的格式看起来如下:
Public Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As Long
End Type


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134