Główna » jak » Jak rozmiar pliku może wynosić zero?

    Jak rozmiar pliku może wynosić zero?

    Od czasu do czasu napotykamy na "sytuację" na naszych komputerach, która pozostawia nas całkowicie zdumionych, na przykład plik o rozmiarze zerowym, ale jak to możliwe? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedzi na pytanie zagubionego czytelnika.

    Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupowania witryn z pytaniami i odpowiedziami.

    Pytanie

    Czytnik SuperUser Eugene S chce wiedzieć, jak rozmiar pliku może wynosić zero:

    To jest coś, na co wpadłem i nie mogłem wymyślić odpowiedniego wyjaśnienia. Jeśli utworzę pustą * .txt na moim komputerze, a następnie spójrz na jego rozmiar, pokazuje rozmiar zero. Jak to możliwe? Mam na myśli, nawet jeśli sam plik jest pusty, musi on nadal mieć pewien rozmiar (nawet jeśli jest po prostu do przechowywania własnej nazwy). Jak to wyjaśnić??

    Jak to możliwe, że plik ma rozmiar zero?

    Odpowiedź

    Współautorzy SuperUser, David Schwartz i Cort Ammon, mają dla nas odpowiedź. Po pierwsze, David Schwartz:

    Jest to możliwe, ponieważ tak naprawdę nie ma pliku. Jest tylko wpis do katalogu z nazwą i właścicielem. Pozycja katalogu różni się logicznie od pliku. Na przykład ten sam plik może mieć więcej niż jedną nazwę w więcej niż jednym katalogu.

    Niestety termin plik nie zawsze jest używany do oznaczania dokładnie tego samego. Jednak logika wielkości pliku pochodzi z modelu, w którym wpis katalogu przypisuje plik do katalogu, a następnie nazwy plików i powiązane metadane są przechowywane w katalogu.

    Po odpowiedzi od Cort Ammon:

    Semantyczne znaczenie rozmiaru pliku różni się od tego, którego używasz.

    Jest wiele znaczących rozmiarów plików. Najczęściej spotykany i ten, który tu widzisz, to liczba bajtów w pliku. Jeśli plik jest pustym plikiem tekstowym, może on zawierać zero bajtów. Ta liczba jest ważna dla programistów, ponieważ często musimy otworzyć plik, odczytać wszystkie dane i zamknąć je. Musimy wiedzieć, ile będzie danych w pliku, abyśmy mogli planować z wyprzedzeniem.

    Inne znaczenie wynika ze sposobu przechowywania danych przez większość systemów plików. Większość systemów plików przechowuje dane w blokach. Na przykład system plików może przechowywać dane w blokach 64 kB, co oznacza, że ​​nigdy nie przydzieli niczego, co nie jest wielokrotnością równą 64 kB. Brzmi to nieefektywnie, ale może uprościć księgowanie, a często jest prostsze.

    Trzecie znaczenie, które ciągnie, to rzeczywista liczba bitów wymaganych na dysku twardym do opisania obecności pliku. Obejmuje to informacje, które są zwykle przechowywane oddzielnie od pliku. Na przykład w systemie Linux pojęcie nazwy pliku jest przechowywane w i-węźle dla katalogu zawierającego plik. [Na podstawie danych z innych komentarzy jest to (technicznie) przechowywane w danych katalogu. Kiedy to pisałem, myślałem o przypadku małego katalogu. Dane mniejsze niż 156 bajtów mogą być przechowywane bezpośrednio w i-węźle.] Nie jest to powszechnie używane znaczenie, ponieważ jest bardzo trudne do określenia bez znajomości niesamowicie głębokich wewnętrznych działań systemu plików (takich jak rozliczanie przestrzeni potrzebnej do przechowywania wszystkich uprawnień do pliku). Jednakże, jeśli masz dysk twardy o pojemności 1 000 000 bajtów i chcesz wiedzieć, jak duży plik może zmieścić się na tym dysku twardym, będzie to dla ciebie bardzo ważne znaczenie!


    Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.