8Sep

Hur kan en filens storlek vara noll?

click fraud protection

Vi kör alla tillfällen över en "situation" på våra datorer som lämnar oss helt förvirrade, till exempel en fil som har en storlek på noll, men hur är det så möjligt? Dagens SuperUser Q & A-inlägg har svaren på en förvirrad läsares fråga.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare Eugene S vill veta hur en fils storlek kan vara noll:

Det här är något jag stötte på och kunde inte tänka mig en riktig förklaring. Om jag skapar en tom *. txt-fil på min dator och sedan tittar på dess storlek, visar den en storlek på noll. Hur är det mojligt? Jag menar även om själva filen är tom, måste den fortfarande ha en viss storlek( även om det bara är att lagra sitt eget namn).Hur kan det förklaras?

Hur är det möjligt att en fil har en storlek på noll?

Svaret

SuperUser-bidragsgivare David Schwartz och Cort Ammon har svaret för oss. Först upp, David Schwartz:

instagram viewer

Det är möjligt eftersom det verkligen inte finns någon fil. Det finns bara en katalogpost med ett namn och en ägare. Mappposten är logiskt skild från filen. Till exempel kan samma fil ha mer än ett namn i mer än en katalog.

Tyvärr är termen fil inte alltid menad att exakt vara samma sak. Men filstorlekslogiken kommer från den modell där en kataloginmatning fäster en fil i en katalog, så lagras filnamnen och relaterade metadata i katalogen.

Följd av svaret från Cort Ammon:

Den semantiska betydelsen av filstorlek skiljer sig från den du använder.

Det finns många filstorlekar som är meningsfulla. Den vanligaste, och den du ser här, är antalet byte i filen. Om filen är en tom textfil kan den faktiskt innehålla noll byte. Detta nummer är viktigt för programmerare eftersom vi ofta behöver öppna en fil, läsa all data och stänga den. Vi behöver veta hur många bitar data kommer att finnas i filen så vi kan planera framåt.

En annan innebörd härstammar från hur de flesta filsystem lagrar data. De flesta filsystem lagrar data i block. Till exempel kan filsystemet lagra data i 64 kB block, vilket betyder att det aldrig kommer att allokera allt som inte är en jämn multipel av 64 kB.Det här låter ineffektivt, men det kan göra bokföring ganska enklare och ofta enklare betyder snabbare.

En tredje mening, som du slår på, skulle vara det faktiska antalet bitar som krävs på hårddisken för att beskriva närvaron av en fil. Detta inkluderar information som vanligtvis lagras separat från filen. Till exempel i Linux lagras konceptet för filnamnet i inoden för katalogen som innehåller filen.[ Baserat på inmatning från andra kommentarer lagras detta( tekniskt) i katalogens data. När jag skrev detta tänkte jag på småkatalog fallet. Data som är mindre än 156 byte kan lagras direkt i inoden. ] Det här är inte en vanlig mening eftersom det är fruktansvärt svårt att avgöra utan att känna till de enormt djupa inre funktionerna i ditt filsystem( till exempel redovisning av det utrymme som behövs för att lagra alla behörigheter på filen).Om du har en hårddisk på 1 000 000 byte och vill veta hur stor en fil kan passa på den här hårddisken kommer det att bli en mycket viktig betydelse för dig!

Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.