8Sep

Hvordan kan en fils størrelse være nul?

click fraud protection

Vi løber alle gange over en "situation" på vores computere, der efterlader os fuldstændig forvirret, som en fil, der har en størrelse på nul, men hvordan er det endda muligt? Dagens SuperUser Q & A-indlæg har svarene på en forvirret læsers spørgsmål.

Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.

Spørgsmål

SuperUser læser Eugene S vil vide, hvordan en fils størrelse kan være nul:

Dette er noget, jeg løb ind i og ikke kunne tænke på en ordentlig forklaring. Hvis jeg opretter en tom *. txt-fil på min computer og derefter ser på dens størrelse, viser den en størrelse på nul. Hvordan er det muligt? Jeg mener selv om selve filen er tom, skal den stadig have en vis størrelse( selvom det kun er at gemme sit eget navn).Hvordan kan det forklares?

Hvordan er det muligt for en fil at have en størrelse på nul?

Svaret

SuperUser bidragyderne David Schwartz og Cort Ammon har svaret for os. Først op, David Schwartz:

instagram viewer

Det er muligt, fordi der virkelig ikke er nogen fil. Der er kun en mappe med et navn og en ejer. Mappen er logisk forskellig fra filen. For eksempel kan den samme fil have mere end et navn i mere end en mappe.

Desværre er begrebet fil ikke altid brugt til at betyde præcis det samme. Men filstørrelseslogikken kommer fra den model, hvor en mappepost tilføjer en fil til en mappe, så gemmes filnavnet og relaterede metadata i mappen.

Efterfulgt af svaret fra Cort Ammon:

Den semantiske betydning af filstørrelse er forskellig fra den, du bruger.

Der er mange filstørrelser, som er meningsfuldt. Den mest almindelige, og den du ser her, er antallet af byte i filen. Hvis filen er en tom tekstfil, kan den faktisk indeholde nul byte. Dette nummer er vigtigt for programmører, fordi vi ofte skal åbne en fil, læse alle data og lukke den. Vi skal vide, hvor mange bytes data der vil være i filen, så vi kan planlægge fremad.

En anden betydning skyldes den måde, som de fleste filsystemer gemmer data på.De fleste filsystemer gemmer data i blokke. F.eks. Kan filsystemet lagre data i 64 kB blokke, hvilket betyder, at det aldrig vil allokere noget, der ikke er et lige flertal på 64 kB.Det lyder ineffektivt, men det kan gøre bogføring ret enklere, og ofte betyder det enklere at gøre bogføring.

En tredje betydning, som du slæber på, ville være det faktiske antal bits, der kræves på harddisken for at beskrive tilstedeværelsen af ​​en fil. Dette inkluderer oplysninger, der normalt gemmes separat fra filen. For eksempel i Linux, er begrebet filnavn gemt i inoden for den mappe, der indeholder filen.[ Baseret på input fra andre kommentarer lagres dette( teknisk) i mappens data. Da jeg skrev dette tænkte jeg på småkatalog sagen. Data mindre end 156 bytes kan lagres direkte i inoden. ] Dette er ikke en almindeligt anvendt betydning, fordi det er frygteligt svært at bestemme uden at kende de enormt dybe indre funktioner i dit filsystem( f.eks. At regne med pladsen, der er nødvendigt for at gemme alle tilladelser på filen).Men hvis du har en 1.000.000 byte harddisk og vil vide, hvor stor en fil kan passe på den harddisk, vil dette være en meget vigtig betydning for dig!

Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.