Trang chủ » làm thế nào để » Làm thế nào kích thước của một tập tin có thể bằng không?

    Làm thế nào kích thước của một tập tin có thể bằng không?

    Tất cả chúng ta thỉnh thoảng chạy trên một "tình huống" trên các máy tính khiến chúng ta hoàn toàn bối rối, chẳng hạn như một tệp có kích thước bằng 0, nhưng làm thế nào mà thậm chí có thể? Bài hỏi và trả lời của SuperUser hôm nay có câu trả lời cho câu hỏi của người đọc bối rối.

    Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ sự hỗ trợ của SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều khiển.

    Câu hỏi

    Trình đọc SuperUser, Eugene S muốn biết làm thế nào kích thước của tệp có thể bằng 0:

    Đây là điều mà tôi gặp phải và không thể nghĩ ra một lời giải thích phù hợp. Nếu tôi tạo một sản phẩm nào * tập tin .txt trên máy tính của tôi và sau đó nhìn vào kích thước của nó, nó hiển thị kích thước bằng không. Làm thế nào là có thể? Ý tôi là ngay cả khi tập tin trống, nó vẫn phải có kích thước nào đó (ngay cả khi nó chỉ để lưu tên riêng của nó). Làm như thế nào để giải thích chuyện này?

    Làm thế nào để một tập tin có kích thước bằng 0?

    Câu trả lời

    Những người đóng góp cho SuperUser David Schwartz và Cort Ammon có câu trả lời cho chúng tôi. Đầu tiên, David Schwartz:

    Có thể bởi vì thực sự không có tập tin. Chỉ có một mục thư mục với một tên và chủ sở hữu. Mục nhập thư mục là khác biệt hợp lý từ các tập tin. Ví dụ: cùng một tệp có thể có nhiều hơn một tên trong nhiều thư mục.

    Thật không may, tập tin thuật ngữ không phải luôn luôn được sử dụng để có nghĩa chính xác cùng một điều. Nhưng logic kích thước tệp xuất phát từ mô hình trong đó mục nhập thư mục đính kèm tệp vào thư mục, sau đó tên tệp và dữ liệu meta có liên quan được lưu trữ trong thư mục.

    Tiếp theo là câu trả lời từ Cort Ammon:

    Ý nghĩa ngữ nghĩa của kích thước tệp khác với nghĩa bạn đang sử dụng.

    Có nhiều kích cỡ tập tin có ý nghĩa. Cái phổ biến nhất và cái bạn đang thấy ở đây là số byte trong tệp. Nếu tệp là một tệp văn bản trống, nó thực sự có thể chứa byte không. Con số này rất quan trọng đối với các lập trình viên bởi vì chúng ta thường cần mở một tệp, đọc tất cả dữ liệu và đóng nó. Chúng ta cần biết có bao nhiêu byte dữ liệu trong tệp để có thể lên kế hoạch trước.

    Một ý nghĩa khác phát sinh từ cách hầu hết các hệ thống tập tin lưu trữ dữ liệu. Hầu hết các hệ thống tập tin lưu trữ dữ liệu trong các khối. Ví dụ: hệ thống tệp có thể lưu trữ dữ liệu trong các khối 64 kB, có nghĩa là nó sẽ không bao giờ phân bổ bất cứ thứ gì không phải là bội số của 64 kB. Điều này nghe có vẻ không hiệu quả, nhưng nó có thể làm cho việc ghi sổ khá đơn giản và thường đơn giản hơn có nghĩa là nhanh hơn.

    Một ý nghĩa thứ ba, mà bạn đang theo dõi, sẽ là số bit thực tế cần có trên ổ cứng để mô tả sự hiện diện của một tệp. Điều này bao gồm thông tin thường được lưu trữ riêng biệt từ tệp. Chẳng hạn, trong Linux, khái niệm tên tệp được lưu trong inode cho thư mục chứa tệp. [Dựa trên đầu vào từ các bình luận khác, đây là (về mặt kỹ thuật) được lưu trữ trong dữ liệu của thư mục. Khi tôi viết điều này, tôi đã nghĩ về trường hợp thư mục nhỏ. Dữ liệu nhỏ hơn 156 byte có thể được lưu trữ trực tiếp trong inode.] Đây không phải là một ý nghĩa thường được sử dụng vì rất khó xác định mà không biết hoạt động bên trong cực kỳ sâu của hệ thống tệp của bạn (chẳng hạn như chiếm không gian cần thiết để lưu trữ tất cả các quyền trên tệp). Tuy nhiên, nếu bạn có ổ cứng 1.000.000 byte và muốn biết tệp lớn như thế nào có thể vừa với ổ cứng đó, đây sẽ là một ý nghĩa rất quan trọng đối với bạn!


    Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.