venerdì 29 luglio 2011

C# - formattare in stringa la dimensione di un file

Semplice funzione per formattare la dimensione di un file, trovata a questo indirizzo.
Utilizzando in C# l'oggetto FileInfo (per ottenere informazioni su un determinato file) il valore emesso dalla funzione Lenght è di tipo long. Serve quindi una funzione che lo formatti capendo se si tratta di Mb, Gb, Kb eccetera.
public static string ToByteString(long bytes)
{
   long kilobyte = 1024;
   long megabyte = 1024 * kilobyte;
   long gigabyte = 1024 * megabyte;
   long terabyte = 1024 * gigabyte;
   if (bytes > terabyte) return (bytes / terabyte).ToString("0.00 TB");
   else if (bytes > gigabyte) return (bytes / gigabyte).ToString("0.00 GB");
   else if (bytes > megabyte) return (bytes / megabyte).ToString("0.00 MB");
   else if (bytes > kilobyte) return (bytes / kilobyte).ToString("0.00 KB");
   else return bytes + " Bytes";
}

Ed ora un semplice esempio di utilizzo:
FileInfo fi = new FileInfo(filename);
Console.Write("Dimensione file: " + ToByteString(fi.Length));
Questa funzione è fondamentale per un componente C# (User Control) che sto preparando: un fileBrowser.

Nessun commento: