2010-06-04 3 views
5

Я хотел бы знать, есть ли функция в .NET, которая преобразует числовые байты в строку с правильным измерением?байт (1024) для преобразования строк (1 КБ)?

Или нам просто нужно следить за старым подходом к разделению и удержанию единиц преобразования, чтобы сделать это?

+0

посмотрите @ http://stackoverflow.com/questions/281640/how-do-i-get-a-human-readable-file-size -using-net –

+0

wow выглядит как это сообщение действительно имеет разные вкусы :) Спасибо человеку –

ответ

7

Нет, нет.

Вы можете написать один, как это:

public static string ToSizeString(this double bytes) { 
    var culture = CultureInfo.CurrentUICulture; 
    const string format = "#,0.0"; 

    if (bytes < 1024) 
     return bytes.ToString("#,0", culture); 
    bytes /= 1024; 
    if (bytes < 1024) 
     return bytes.ToString(format, culture) + " KB"; 
    bytes /= 1024; 
    if (bytes < 1024) 
     return bytes.ToString(format, culture) + " MB"; 
    bytes /= 1024; 
    if (bytes < 1024) 
     return bytes.ToString(format, culture) + " GB"; 
    bytes /= 1024; 
    return bytes.ToString(format, culture) + " TB"; 
} 
+0

Если я ошибаюсь, я думаю, было бы лучше повторить цикл 'while' или' do'. И это решение было бы лучше на глазах. Это только мое мнение. : \ –

+0

@Alex: Вы правы; Я не думал об этом. Позднее я увидел другой ответ, который сделал это. – SLaks

+0

Ganked [.] (Http://stealinurcode.lol) – Will