اذهب إلى المحتوى
  • 0

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

محمد بوسكوري

السؤال

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

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

كيف ذلك؟

تم التعديل في بواسطة محمد بوسكوري
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 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 نحصل على

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...