Formatar bytes
Função simples para devolver um número fornecido em bytes, na unidade mais aproximada de um valor pequeno. Por exemplo, fornecer 1025 bytes causa uma devolução em Kilobytes.
Private Function FormatBytes(ByVal dblBytes As Double) As String
Const KILOBYTE As Double = 1024
Const MEGABYTE As Double = KILOBYTE ^ 2 ' kilobyte elevado a 2
Const GIGABYTE As Double = KILOBYTE ^ 3 ' kilobyte elevado a 3
Const TERABYTE As Double = KILOBYTE ^ 4 ' kilobyte elevado a 4
Const PETABYTE As Double = KILOBYTE ^ 5 ' kilobyte elevado a 5
'Seleciona o formato mais apropriado
Select Case dblBytes
Case Is >= PETABYTE
Return System.Math.Round(dblBytes / PETABYTE, 2) & " PiB"
Case Is >= TERABYTE
Return System.Math.Round(dblBytes / TERABYTE, 2) & " TiB"
Case Is >= GIGABYTE
Return System.Math.Round(dblBytes / GIGABYTE, 2) & " GiB"
Case Is >= MEGABYTE
Return System.Math.Round(dblBytes / MEGABYTE, 2) & " MiB"
Case Is >= KILOBYTE
Return System.Math.Round(dblBytes / KILOBYTE, 2) & " KiB"
Case Else
Return dblBytes & " Bytes"
End Select
End Function