U trendu

Visual Basic – 5 zanimljivih API trikova (II deo)

Koju funkciju ćemo prvo odraditi? Pa, za početak bićemo malo destruktivni i kreiraćemo rutinu koja će brisati fajlove. Iako Visual Basic već poseduje komandu koja omogućava brisanje fajlova – instrukcija „Kill“, njena upotreba u aplikacijama se ne preporučuje, jer je brisanje na ovakav način permanentno. Kao što svi znamo, korisnici često prave greške, a naš cilj je da ih predupredimo u tome. Pa zato, da korisnici ne bi kasnije okrivili programere za sopstvene greške, nećemo koristiti komandu „Kill“ već ćemo kreirati sopstvenu rutinu, koju kasnije možemo koristiti u svim aplikacijama.

Za ovu svrhu koristićemo API funkciju SHFileOperation, koja se nalazi u biblioteci „shell32“. Prvo što treba da uradimo je da deklarišemo funkciju:


Private Declare Function
SHFileOperation Lib _
"shell32.dll" (ByRef lpFileOp As _
SHFILEOPSTRUCT) As Long

Kao što vidite funkcija kao argument koristi tip SHFILEOPSTRUCT, a pošto datog tipa nema unutar Visual Basic-a, potrebno je da ga deklarišemo:


Private 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 String
End Type

Inače, funkcija SHFileOperation koristi se i za kopiranje, preimenovanje, premeštanje i brisanje fajl objekata. U našem slučaju iskoristićemo je samo za brisanje fajlova. Da bi sam programski kod bio čitljiviji, kreiraćemo nekoliko konstanti:


Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40

Posle ovoga ostalo nam je još da kreiramo rutinu za brisanje:


Public Sub Brisanje
(ByVal FileName As String)
Dim FileStruct As SHFILEOPSTRUCT
Dim X As Long

With FileStruct
.fFlags = FOF_ALLOWUNDO
.pFrom = FileName
.wFunc = FO_DELETE
End With

X = SHFileOperation(FileStruct)

End Sub

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.