pcworld online logo

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.