Formatting a File Size in Bytes for Display

106 65
When working with files from Delphi you might want to display the size of a file to the user in a Explorer-like format where the file size is not displayed in bytes - but the display depends on the size of the actual file.

To most users "45678123 b" is confusing - where "43.56 MB" is much more user friendly.

Format Byte Size to String

A custom Delphi function, FormatByteSize, converts a byte value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size.

//Format file byte sizefunction FormatByteSize(const bytes: Longint): string; const   B = 1; //byte   KB = 1024 * B; //kilobyte   MB = 1024 * KB; //megabyte   GB = 1024 * MB; //gigabytebegin   if bytes > GB then     result := FormatFloat('#.## GB', bytes / GB)   else     if bytes > MB then       result := FormatFloat('#.## MB', bytes / MB)     else       if bytes > KB then         result := FormatFloat('#.## KB', bytes / KB)       else         result := FormatFloat('#.## bytes', bytes) ; end;
Delphi tips navigator:
» Create a Custom Message Dialog with Standard Windows Icons using Delphi
« Controlling the Number of a Delphi application Instances on a Terminal Server

Subscribe to our newsletter
Sign up here to get the latest news, updates and special offers delivered directly to your inbox.
You can unsubscribe at any time

Leave A Reply

Your email address will not be published.