21 Temmuz 2018 Cumartesi
Twitter

Byte miktarını görüntüleme

Byte miktarını, büyüklüğüne bağlı olarak otomatik KB, MB, GB, .. olarak görüntülemek için basit bir genişletme metodu paylaşmak istedim.

Dosya boyutunu Windows Gezgini'ndeki gibi görüntülemek istediğinizde hesap kitap yapmanıza gerek yok.

Aşağıdaki genişletme metotlarını kullanarak kolaylıkla bu işi halledebilirsiniz.

public static class ExtensionMethods
{
    public static string BytesToString(this long byteCount, string ayrac = "")
    {
        string[] suf = { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
        if (byteCount == 0)
            return "0" + ayrac + suf[0];
        long bytes = Math.Abs(byteCount);
        int place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024)));
        double num = Math.Round(bytes / Math.Pow(1024, place), 1);
        return (Math.Sign(byteCount) * num).ToString() + ayrac + suf[place];
    }
    public static string BytesToString(this int byteCount, string ayrac = "")
    {
        return BytesToString((long)byteCount, ayrac);
    }
    public static string BytesToString(this string dosya, string ayrac = "")
    {
        FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath(dosya));
        return BytesToString(fi.Length, ayrac);
    }
}

Gördüğünüz üzere 3 farklı versiyon var.

Biri, long tipinden, bir diğeri int tipinden büyüklükleri görüntülemek için kullanılıyor.

En sonuncusu ise direkt olarak dosyanın boyutunu alıp görüntülemek için kullanılıyor.

"ayrac" parametresi ile miktar ile birim arasına eklenecek stringi belirtebilirsiniz. (isteğe bağlı)

 

Örnek bir kullanım ise şu şekilde:

<asp:Repeater ID="rptEkler" runat="server">
    <HeaderTemplate>
        <table class="table table-hover table-condensed">
            <thead>
                <tr>
                    <th>Dosya</th>
                    <th>Boyut</th>
                </tr>
            </thead>
            <tbody>
    </HeaderTemplate>
    <FooterTemplate></tbody></table></FooterTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <%#Eval("Dosya") %>
            </td>
            <td class="align-right">
                <%#Eval("Boyut").ToInt32().BytesToString(" ") %>
            </td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

Sonuç:

Kodları incelemek için tıklayınız.

 

Değerlendirme

Yazım dilinin sadeliği ve anlaşılabilirliği Puan: 5,00 (3 oy)
Yazıdaki kodların kalitesi Puan: 5,00 (3 oy)
İhtiyaca cevap verme Puan: 5,00 (3 oy)
Tavsiye edilebilirlik Puan: 5,00 (3 oy)
Genel değerlendirme Puan: 4,92 (3 oy)
Puanlamalar 5 üzerindendir.
  • Site Yorumları
  • Facebook Yorumları Facebook Yorumları
Yeni yorum yaz
Henüz bir yorum yazılmadı. İlk yazan siz olabilirsiniz.