الكثير منا قد يتملكه الفضول من النتائج التي تظهر لك بعد عمل properties لأي ملف كان أو مجلد،فهذه النتائج تخبرك بوجود حجمين لنفس الملف الأول هو Size و الثاني هو Size On Disk، و دائما ما نجد أن قيمة الحجم أي Size تكون أقل من الحجم على القرص الصلب أي " Size On Dsik "، و كغريزة إنسانية لابد و أنه قد أصابك الفضول من اختلاف حجمين لملف واحد، لكن اليوم سأشفي فضولك بالسبب العلمي لهذا الاختلاف. فأساس كل هذا مرتبط بنظام الملفات المستخدم على النظام و آلية تخزينه للبيانات و حتى يسهل عليك فهم هذا، أقترح عليك أن تطلع في أول الأمر على  الفرق بين الفورمات بـ FAT ، FAT32 ، NTFS , REFS ، exFAT ، حتى يسهل عليك فهم ألية التخزين و السبب الذي قد يدفع النظام لزيادة حجم الملف الأصلي بعد تخزينه، و لكن و حتى تفهم هذا أكثر و تعرف الفرق بين هذين الحجمين تابع معي السطور المتبقية.

 ما الفرق بين حجم الملف و حجمه على القرص الصلب في Windows

● الفرق بين حجم الملف و حجمه على القرص الصلب :

أولا يجب أن تعرف أن أي نظام تشغيل يقوم بتهيئة القرص الصلب الخاص بك لاستخدامه سواء لتخزين البيانات أو غيره و ذلك بتقسيمه إلى قطاع وعند تخزين البيانات يتم تخزينها في هذه القطاعات وهذه القطاعات تسمي Cluster ، و كل نظام ملفات يتعامل بحجم مختلف لهذه القطاعات فمثلا حجم الكلستر في نظام ملفات FAT 16 يساوي 64 Kbs و في NTFS يساوي 4 Kbs ، و لنفهم هذا أكثر  تخيل معي أن القرص الصلب لذيك هو مكتبة و هذه المكتبة مكونة من رفوف كل رف يستطيع أن يحمل عدد محدد من الكتب نقول أنه 7 كتب ، و لذينا موسوعة من الكتب مكون من 16 كتاب على سبيل المثال، إذن عندما أقوم بوضع هذه الكتب في الرفوف فسنستعمل 3 منهما إثنين تملأ أي 7 + 7 = 14 و 16 - 14 = 2 و الكتابان الباقيان سيأخذان رف كامل ، لماذا إذا ؟ و سيبقا لنا 5 كتب يمكن إضافتها إلى الرف الثالث ؟ نعم هذا صحيح لكن هكذا يعمل نظام الملفات إن ملء جزء بسيط من قطاع ما فلن يعيد الكتاب عليه بل ستحتسب المساحة الفارغة منه مع مساحة الملف ، و لو طبقنا هذا على مثالنا فحجم الموسوعة في المكتبة هو 21 كتاب بينما حجمها الحقيقي 16 كتاب ، و هكذا فإن حجم الملف الحقيقي هو Size و و الحجم الذي يأخذ الملف من القطاعات هو Size On Disk .


و مثال آخر لإستعاب الأمر، مثلاً لدينا قرص صلب بي 4 غيغا تم تهيئته (فرمتته) على أساس Fat 16 سيكون حجم Cluster الواحدة 32 كيلو بايت، تخيلو معي كيف سيخزن ملف بحجم 1 كيلو في هذا القرص سيحجز لوحده Cluster ويبقى 31 كيلو دون استخدام ، لأن Cluster لا يتشارك في التخزين أكثر من ملف ، وكذلك ملف حجمه 68 كيلو سيحجز 3 Cluster أو اثنتين منهم ستكونان ممتلئتين والثالثة ستحجز 4 كيلو ويبقى 28 كيلو دون استخدام هذا الكلام سيؤدي بالنتيجة إلى تراكم مساحات غير موظفة وغير قابلة للاستخدام ، و هذا هو السبب الذي يجعل حجم الملف و حجمه على القرص الصلب مختلف .


و لكي أشرح لماذا قلت أن كل هذا مرتبط بنظام الملفات، فل نتخذ مثال بنظام ملفات لنظام أخر وهو EXT4 مثلا وهو نظام متطور نسبيا يستخدم بكثرة الان على لينكس حيث من مميزاته أنه يقوم بالكتابة على القرص الصلب أو القسم المعد به بشكل منظم فمثلا قمنا بنقل ملف عليه و أخد 3 Cluster و بقي من كلوستر 3 جزء فارغ عند الكتاب مرة أخرى سيكمل من حيث توقف و يملأ القطاع الثالث الذي مازال فيه مساحة فارغ و ينتقل إلى الذي بعده مما يمنع ضياع المساحة و بالتالي حجم موحد بين الذي هو على القرص الصلب و كذالك الأصلي . 


أتمنى أن هذا كان كافي لكي تفهم السبب الذي يجعل حجم الملف الأصلي و الحجم على القرص الصلب مختلف، و أن أكون قد أشبعت فضولك، شكرا على المتابعة و إلى موضوع جديد بإذن الله .