VB 5/6-Tipp 0417: Anzahl der Dateien und deren Größe im Papierkorb auslesen
von ActiveVB
Beschreibung
Ermöglicht zum einen die Anzahl der im Papierkorb befindlichen Datein, als auch deren Gesamtgröße zu erfahren. Nützlich z.B. um nach einer Löschaktion herauszufinden ob eine Datei dort auch tatsächlich angelangt ist.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Festplattenauswahlliste "Drive1" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Beschriftungsfeld "Label2" ' Steuerelement: Beschriftungsfeld "Label1" ' Steuerelement: Beschriftungsfeld "Label4" ' Steuerelement: Beschriftungsfeld "Label3" Option Explicit Private Declare Function SHQueryRecycleBin Lib "shell32.dll" _ Alias "SHQueryRecycleBinA" (ByVal pszRootPath As String, _ pSHQueryRBInfo As SHQUERYRBINFO) As Long Private Type ULARGE_INTEGER Lo As Long Hi As Long End Type Private Type SHQUERYRBINFO cbSize As Long i64Size As ULARGE_INTEGER i64NumItems As ULARGE_INTEGER End Type Private Sub Form_Load() Call GetBinsData("") End Sub Private Sub Command1_Click() Call GetBinsData("") End Sub Private Sub Drive1_Change() Call GetBinsData(Left$(Drive1.Drive, 2) & "\") End Sub Private Sub GetBinsData(rbPath As String) Dim RB As SHQUERYRBINFO RB.cbSize = Len(RB) Call SHQueryRecycleBin(rbPath, RB) 'Genau genommen müsste an dieser Stelle eine genauere Be- 'trachtung von Lo & Hi erfolgen, da es sich hier ja um 'einen einen 64 Bit-Wert handelt der in VB nicht direkt 'dargestellt werden kann. Label1.Caption = RB.i64NumItems.Lo Label2.Caption = Format$(RB.i64Size.Lo \ 1024&, "###,###,### kB") End Sub 'Für Windows NT & 2k: 'Private Sub GetBinsData(rbPath As String) ' Dim i As Integer ' Dim RB As SHQUERYRBINFO ' Dim size As Long ' Dim files As Long ' ' RB.cbSize = Len(RB) ' ' If Len(rbPath) = 0 Then ' For i = Asc("A") To Asc("Z") ' Call SHQueryRecycleBin(Chr(i) & ":", RB) ' size = size + RB.i64Size.Lo \ 1024 ' files = files + RB.i64NumItems.Lo ' Next i ' Label1.Caption = files ' Label2.Caption = Format$(size \ _ ' 1024&, "###,###,### kB") ' Else ' Call SHQueryRecycleBin(rbPath, RB) ' ' Label1.Caption = RB.i64NumItems.Lo ' Label2.Caption = Format$(RB.i64Size.Lo \ _ ' 1024&, "###,###,### kB") ' End If ' 'End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.