Ir para o conteúdo

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