How Big is that File – in English?

Humans and computers sometimes just don’t get along. Take file sizes, for example. What a human being would call one gigabyte, a computer would call 1073741824 bytes. How do you translate one into the other? Pull up a chair.

The following handy function takes a number of bytes and translates it into a readable “human” string. Here’s the code:

Public Function ConvertBytes(ByVal Bytes As Long) As String
    ' Converts bytes into a readable "1.44 MB", etc. string
    If Bytes >= 1073741824 Then
        Return Format(Bytes / 1024 / 1024 / 1024, "#0.00") _
            & " GB"
    ElseIf Bytes >= 1048576 Then
        Return Format(Bytes / 1024 / 1024, "#0.00") & " MB"
    ElseIf Bytes >= 1024 Then
        Return Format(Bytes / 1024, "#0.00") & " KB"
    ElseIf Bytes > 0 And Bytes < 1024 Then
        Return Fix(Bytes) & " Bytes"
        Return "0 Bytes"
    End If
End Function

Here’s an example of the function in use. Here, the length of my file is 3027676 bytes—and the ConvertBytes function returns “2.89MB”. Perfect:

Dim objInfo As New System.IO.FileInfo("c:\myfile.bmp")
MessageBox.Show("File is " & ConvertBytes(objInfo.Length))

You might also like...


Karl Moore


Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Memory is like an orgasm. It's a lot better if you don't have to fake it.” - Seymour Cray