vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Dateisystem · Laufwerke   |   VB-Versionen: VB4, VB5, VB610.03.01
Skalierte Anzeige des freien Speicherplatzes

Skalierte Anzeige der auf einem Laufwerk zur Verfügung stehenden Gesamt- und Rest-Speicherkapazität

Autor:   Helmut SuhrenBewertung:     [ Jetzt bewerten ]Views:  15.004 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgender Tipp ermittelt den gesamten und den noch verfügbaren Speicherplatz eines bestimmten Laufwerks. Die Funktion GetFreeDiskSpace formatiert hierbei die ermittelten Werte in folgende Form: 1,63 GB frei (von 2,44 GB)

' zunächst alle benötigten API-Deklarationen
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
  Alias "GetDiskFreeSpaceExA" ( _
  ByVal lpDirectoryName As String, _
  lpFreeBytesAvailableToCaller As Currency, _
  lpTotalNumberOfBytes As Currency, _
  lpTotalNumberOfFreeBytes As Currency) As Long
 
Private Function GetDiskFreeSpace(Drive As String, _
  BytesAvailable As Currency, TotalBytes As Currency, _
  FreeBytes As Currency) As Boolean
 
  GetDiskFreeSpace = GetDiskFreeSpaceEx(Drive, _
    BytesAvailable, TotalBytes, FreeBytes)
  If GetDiskFreeSpace Then
    BytesAvailable = BytesAvailable * 10000
    TotalBytes = TotalBytes * 10000
    FreeBytes = FreeBytes * 10000
  End If
End Function
 
Private Function Log10(X As Currency) As Currency
  Log10 = IIf(X = 0, 0, Log(X) / Log(10#))
End Function
 
Private Function xformat(a As Double, _
  ByVal fmt As String) As String
 
  xformat = Format(a, fmt)
End Function
 
' Ermittelt den Speicherplatz
' Rückgabewert (String)
' 
' Beispiele: x,xx GB frei (von x,xx GB)
'           x,xx MB frei (von x,xx GB)
'           x,xx KB frei (von x,xx MB)
Public Function GetFreeDiskSpace(Dir As String) As String
  Dim Drive As String
  Dim BytesAvailable As Currency
  Dim TotalBytes As Currency
  Dim FreeBytes As Currency
  Dim EinheitName As Variant
  Dim EinheitFormat As Variant
 
  EinheitName = Array("Byte", "Byte", "Byte", "KB", "KB", _
    "KB", "MB", "MB", "MB", "GB", "GB", "GB", "TB", "TB", "TB")
  EinheitFormat = Array("0", "0", "0", "0.00", "0.0", "0", _
    "0.00", "00.0", "0", "0.00", "0.0", "0", "0.00", "0.0", "0")
 
  Dim MB As Integer
  Dim j As Integer
  Dim k As Integer
 
  Drive = Left(Dir, 2) & "\"
  If GetDiskFreeSpace(Drive, BytesAvailable, TotalBytes, _
    FreeBytes) Then
    j = Int(Log10(TotalBytes))
    k = Int(Log10(FreeBytes))
 
    GetFreeDiskSpace = xformat(FreeBytes / 1024 ^ Int(k / 3), _
      EinheitFormat(k)) & " " & EinheitName(k) & _
      " frei (von " & xformat(TotalBytes / 1024 ^ Int(j / 3), _
      EinheitFormat(j)) & " " & EinheitName(j) & ")"
  Else
    GetFreeDiskSpace = "??"
  End If
End Function

Um den Tipp auszuprobieren, starten Sie ein neues Projekt, plazieren auf der Form ein Eingabe-Steuerelement Text1, sowie eine Schaltfläche Command1. Im Click-Ereignis von Command1 fügen Sie folgenden Code ein:

Private Sub Command1_Click()
  Text1.Text = GetFreeDiskSpace(CurDir)
End Sub

Dieser Tipp wurde bereits 15.004 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel