• 0

كيف أُظهر حجم ملف بصيغة مقروءة للمستخدم على Vb.net؟

كيف لي أن أظهر حجم الملف بصيغة يمكن للمستخدم فهمها واستيعابها على تطبيق بـ vb.net، مثلاً:

القيمة 7,326,629 تظهر على شكل 6.9MB   

كيف ذلك؟

تمّ تعديل بواسطة محمد بوسكوري

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

في طبيعة الحال الدوت نت تقوم بإعطاء القيمة بــ Bytes , عليك أنت تحويلها بشكل يدوي عن طريق القسمة.

7,326,629  ÷ 1000 = 7.326 

لا تقلق سيقوم المترجم بتحويلها بشكل مباشر الي 6.99

Lbl=(FileSize / 1000 )+".MB"

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

بما أنه هناك احتمالات عدة لوحدة القياس التي ستظهر،"B", "KB", "MB", "GB" سنعمل على إنشاء مصفوفة تحتوى على هذه الوحدات، على أن يتم تحديد الوحدة المناسبة مع حجم الملف.

ليكون الكود بالشكل التالي:

string[] sizes = { "B", "KB", "MB", "GB" };
double len = new FileInfo(filename).Length;
int order = 0;
while (len >= 1024 && order + 1 < sizes.Length) {
    order++;
    len = len/1024;
}

ثم تحديد format أو شكل ظهرو الحجم:

string result = String.Format("{0:0.##} {1}", len, sizes[order]);
  • يمكن أيضا استعمال الصيغة التالية، والتي لا تختلف كثيرا عن الأولى:
static String BytesToString(long byteCount)
{
    string[] suf = { "B", "KB", "MB", "GB", "TB", "PB", "EB" }; //مختلف الوحدات للقياس حجم الملف
    if (byteCount == 0)
        return "0" + 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() + suf[place];
}

أمثلة لما يمكن الحصول عليه:

Console.WriteLine(BytesToString(9223372036854775807));  //  8EB نحصل على 
Console.WriteLine(BytesToString(0));                    //  0B نحصل على
Console.WriteLine(BytesToString(1024));                 // 1KB نحصل على
Console.WriteLine(BytesToString(2000000));              //  1.9MB نحصل على
Console.WriteLine(BytesToString(-9023372036854775807)); // -7.8EB نحصل على

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن