Dosyalar Geri Dönüşüm Kutusu'na
VB4'ün 32-bit'lik sürümünü kullanıyorsanız, dosyaları programınız içinden
Windows'un çöp kutusuna gönderebilirsiniz. VB'de KILL komutuyla sildiğiniz
hiç bir dosya normal olarak çöp kutusuna gitmeyecek ve kullanıcı dosyasını
geri getirmek istediğinde çöp kutusunda bulamayacaktır. Eğer becerikli
bir kullanıcı arabirimi istiyorsanız bu özelliği göz ardı etmemelisiniz.
Aşağıdaki örnek sadece dosyayı çöp kutusuna göndermeyi değil, VB 4.0 ile
gelen ParamArray ifadesinin kullanımını da gösteren güzel kodlardan oluşmaktadır.
Option Explicit
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Function ShellDelete(ParamArray vntFileName() _
As Variant) As Long
Dim I As Integer
Dim sFileNames As String
Dim SHFileOp As SHFILEOPSTRUCT
For I = LBound(vntFileName) To UBound(vntFileName)
sFileNames = sFileNames & vntFileName(I) & vbNullChar
Next
sFileNames = sFileNames & vbNullChar
With SHFileOp
.wFunc = FO_DELETE
.pFrom = sFileNames
.fFlags = FOF_ALLOWUNDO
End With
ShellDelete = SHFileOperation(SHFileOp)
End Function
Örnekte ParamArray ifadesi kullanılarak fonksiyona birden fazla parametre
tanıma özelliği kazandırılmıştır
Tek bir dosya silmek için
X = ShellDelete("DELETE.ME")
komutunu kullanabileceğiniz gibi,
X = ShellDelete("DELETE.ME", "LOVE_LTR.DOC", "COVERUP.TXT")
komutunu kullanarak adı geçen üç dosyayı da silebilirsiniz.