Startpagina » hoe » Hoe kan de bestandsgrootte nul zijn?

    Hoe kan de bestandsgrootte nul zijn?

    We hebben allemaal af en toe een 'situatie' op onze computers tegengekomen die ons compleet verbijsterd maakt, zoals een bestand met een grootte nul, maar hoe is dat mogelijk? De SuperUser Q & A-post van vandaag heeft de antwoorden op de vraag van een verwarde lezer.

    De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een gemeenschapsgedreven groep van Q & A-websites.

    De vraag

    SuperUser-lezer Eugene S wil weten hoe de bestandsgrootte nul kan zijn:

    Dit is iets dat ik tegenkwam en geen goede uitleg kon bedenken. Als ik een leeg maak * .txt-bestand op mijn computer en kijk dan naar de grootte ervan, het toont een grootte nul. Hoe is dat mogelijk? Ik bedoel, zelfs als het bestand zelf leeg is, moet het nog steeds een bepaalde grootte hebben (zelfs als het alleen maar zijn eigen naam opslaat). Hoe kan dit worden uitgelegd?

    Hoe is het mogelijk dat een bestand de grootte nul heeft?

    Het antwoord

    SuperUser-bijdragers David Schwartz en Cort Ammon hebben het antwoord voor ons. Als eerste, David Schwartz:

    Het is mogelijk omdat er echt geen bestand is. Er is alleen een telefoonboekvermelding met een naam en eigenaar. Het telefoonboekitem is logisch verschillend van het bestand. Hetzelfde bestand kan bijvoorbeeld meer dan één naam in meer dan één map hebben.

    Helaas wordt de term bestand niet altijd gebruikt om precies hetzelfde te betekenen. Maar de logica van de bestandsgrootte komt van het model waarbij een directory-item een ​​bestand aan een map toevoegt, waarna de bestandsnamen en gerelateerde metadata in de map worden opgeslagen.

    Gevolgd door het antwoord van Cort Ammon:

    De semantische betekenis van de bestandsgrootte verschilt van degene die u gebruikt.

    Er zijn veel bestandsgrootten die zinvol zijn. De meest voorkomende en degene die u hier ziet, is het aantal bytes in het bestand. Als het bestand een leeg tekstbestand is, bevat het mogelijk nul bytes. Dit aantal is belangrijk voor programmeurs, omdat we vaak een bestand moeten openen, alle gegevens moeten lezen en het moeten sluiten. We moeten weten hoeveel bytes aan gegevens in het bestand aanwezig zijn, zodat we vooruit kunnen plannen.

    Een andere betekenis komt voort uit de manier waarop de meeste bestandssystemen gegevens opslaan. De meeste bestandssystemen slaan gegevens op in blokken. Het bestandssysteem kan bijvoorbeeld gegevens in blokken van 64 kB opslaan, wat betekent dat het nooit iets toewijst dat geen even veelvoud is van 64 kB. Dit klinkt inefficiënt, maar het kan boekhouden een stuk eenvoudiger maken en vaak eenvoudiger betekent sneller.

    Een derde betekenis, waar u aan sleept, is het werkelijke aantal bits dat op de harde schijf nodig is om de aanwezigheid van een bestand te beschrijven. Dit omvat informatie die meestal gescheiden van het bestand wordt opgeslagen. In Linux wordt het concept van de bestandsnaam bijvoorbeeld opgeslagen in de inode voor de map die het bestand bevat. [Gebaseerd op invoer van andere opmerkingen, wordt dit (technisch) opgeslagen in de gegevens van de directory. Toen ik dit schreef, dacht ik aan het geval met de kleine directory. Gegevens kleiner dan 156 bytes kunnen direct in de inode worden opgeslagen.] Dit is geen veelgebruikte betekenis, omdat het verschrikkelijk moeilijk is om te bepalen zonder de enorm diepe innerlijke werking van uw bestandssysteem te kennen (zoals de boekhouding van de ruimte die nodig is om alle rechten op het bestand op te slaan). Als u echter een harde schijf van 1.000.000 bytes hebt en wilt weten hoe groot een bestand op die harde schijf kan passen, is dit een zeer belangrijke betekenis voor u!


    Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.