Вот как можно разбить его на гигабайты, мегабайты или килобайты:
string sLen = fInf.Length.ToString();
if (fInf.Length >= (1 << 30))
sLen = string.Format("{0}Gb", fInf.Length >> 30);
else
if (fInf.Length >= (1 << 20))
sLen = string.Format("{0}Mb", fInf.Length >> 20);
else
if (fInf.Length >= (1 << 10))
sLen = string.Format("{0}Kb", fInf.Length >> 10);
sLen
будет ваш ответ. Вы можете заключить его в функцию и просто передать объект Length
или даже объект FileInfo
.
Если вместо «настоящих» килобайт вы хотели бы получить его в единицах байтов по 1000, вы можете заменить 1 << 10
и >> 10
на 1000
и /1000
соответственно, и аналогично для других, использующих 1000000 и 1000000000. .