โฮมเพจ » ทำอย่างไร » ขนาดของไฟล์จะเป็นศูนย์ได้อย่างไร?

    ขนาดของไฟล์จะเป็นศูนย์ได้อย่างไร?

    บางครั้งเราทุกคนเจอ 'สถานการณ์' ในคอมพิวเตอร์ของเราซึ่งทำให้เรางงงวยอย่างสมบูรณ์เช่นไฟล์ที่มีขนาดเท่ากับศูนย์ แต่เป็นไปได้อย่างไร คำถาม & คำตอบ SuperUser ของวันนี้มีคำตอบสำหรับคำถามของผู้อ่านที่สับสน.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    ผู้อ่าน SuperUser Eugene S ต้องการทราบว่าขนาดไฟล์เป็นศูนย์ได้อย่างไร:

    นี่คือสิ่งที่ฉันวิ่งเข้าไปและไม่สามารถคิดถึงคำอธิบายที่เหมาะสม ถ้าฉันสร้างที่ว่างเปล่า ไฟล์ * .txt บนคอมพิวเตอร์ของฉันแล้วดูขนาดของมันมันจะแสดงขนาดเป็นศูนย์ เป็นไปได้อย่างไร? ฉันหมายถึงแม้ว่าไฟล์นั้นจะว่างเปล่ามันก็ยังคงต้องมีขนาดบาง (แม้ว่ามันจะเป็นเพียงการจัดเก็บชื่อของตัวเอง) วิธีนี้สามารถอธิบายได้?

    เป็นไปได้อย่างไรที่ไฟล์จะมีขนาดเป็นศูนย์?

    คำตอบ

    ผู้สนับสนุน SuperUser David Schwartz และ Cort Ammon มีคำตอบสำหรับเรา มาก่อน David Schwartz:

    เป็นไปได้เพราะไม่มีไฟล์จริงๆ มีเพียงรายการไดเรกทอรีที่มีชื่อและเจ้าของ รายการไดเร็กทอรีแตกต่างแบบโลจิคัลจากไฟล์ ตัวอย่างเช่นไฟล์เดียวกันสามารถมีมากกว่าหนึ่งชื่อในมากกว่าหนึ่งไดเรกทอรี.

    น่าเสียดายที่ไฟล์คำศัพท์นั้นไม่ได้ใช้เพื่อหมายถึงสิ่งเดียวกันเสมอไป แต่ตรรกะขนาดไฟล์มาจากแบบจำลองที่รายการไดเรกทอรีแนบไฟล์ไปยังไดเรกทอรีจากนั้นชื่อไฟล์และข้อมูลเมตาที่เกี่ยวข้องจะถูกเก็บไว้ในไดเรกทอรี.

    ตามด้วยคำตอบจาก Cort Ammon:

    ความหมายเชิงความหมายของขนาดไฟล์นั้นแตกต่างจากที่คุณใช้.

    มีหลายขนาดไฟล์ที่มีความหมาย สิ่งที่พบบ่อยที่สุดและสิ่งที่คุณเห็นอยู่ที่นี่คือจำนวนไบต์ในไฟล์ หากไฟล์นั้นเป็นไฟล์ข้อความที่ว่างเปล่ามันอาจมีจำนวนไบต์เป็นศูนย์ หมายเลขนี้เป็นสิ่งสำคัญสำหรับโปรแกรมเมอร์เพราะเรามักจะต้องเปิดไฟล์อ่านข้อมูลทั้งหมดและปิดมัน เราจำเป็นต้องทราบจำนวนไบต์ของข้อมูลในไฟล์เพื่อให้เราสามารถวางแผนล่วงหน้า.

    ความหมายอื่นเกิดขึ้นจากวิธีที่ระบบไฟล์ส่วนใหญ่จัดเก็บข้อมูล ระบบไฟล์ส่วนใหญ่เก็บข้อมูลไว้ในบล็อก ตัวอย่างเช่นระบบไฟล์อาจเก็บข้อมูลไว้ในบล็อกขนาด 64 kB ซึ่งหมายความว่าระบบจะไม่จัดสรรข้อมูลใด ๆ ที่ไม่ใช่ 64 kB หลายเท่า สิ่งนี้ฟังดูไร้ประสิทธิภาพ แต่มันสามารถทำให้การทำบัญชีค่อนข้างง่ายขึ้นและบ่อยครั้งที่หมายถึงง่ายขึ้นเร็วขึ้น.

    ความหมายที่สามซึ่งคุณกำลังดึงคือจำนวนบิตที่แท้จริงที่ต้องการในฮาร์ดไดรฟ์เพื่ออธิบายการมีอยู่ของไฟล์ รวมถึงข้อมูลที่มักจะจัดเก็บแยกต่างหากจากไฟล์ ตัวอย่างเช่นใน Linux แนวคิดของชื่อไฟล์จะถูกเก็บไว้ใน inode สำหรับไดเรกทอรีที่มีไฟล์ [อิงตามอินพุตจากความคิดเห็นอื่นนี่คือ (ทางเทคนิค) ที่เก็บไว้ในข้อมูลของไดเรกทอรี เมื่อฉันเขียนสิ่งนี้ฉันกำลังคิดถึงเคสตัวเล็ก ๆ ข้อมูลที่มีขนาดเล็กกว่า 156 ไบต์สามารถจัดเก็บโดยตรงในไอโหนด.] นี่ไม่ใช่ความหมายที่ใช้กันทั่วไปเพราะมันยากที่จะตัดสินโดยไม่ทราบว่าการทำงานภายในของระบบไฟล์ของคุณ (เช่นการบัญชีสำหรับพื้นที่ที่จำเป็นในการจัดเก็บสิทธิ์ทั้งหมดในไฟล์) อย่างไรก็ตามหากคุณมีฮาร์ดไดรฟ์ 1,000,000 ไบต์และต้องการทราบว่าไฟล์ขนาดใหญ่สามารถบรรจุลงในฮาร์ดไดรฟ์ตัวนี้ได้จะเป็นสิ่งสำคัญสำหรับคุณ!


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.