Kill对于开发者来说是方便的,因为它不需要调用API函数。你所需要做的就是将文件的名字做为字符串表达式传递给这个函数。例如,Kill(App.Path & "1.txt"),然后文件就被删除了。但是如果你希望给你的用户一个完善的操作并确保文件可以恢复,你可以用另外一种方法把要删除的文件发送到回收站,而不是使用Kill函数。下面让我们看这是怎么工作的。
这个技术的关键是SHFileOperation 函数,它包含在Shell32.dll中。Windows 95/98/Me/NT4.0/2000 都支持SHFileOperation 函数并允许对文件拷贝,移动,重命名和删除。你还能够使用它把文件送到回收站,这样用户就能够恢复它们了。
通过调用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