FileMaker - Tip 115

 

Klik op om terug te keren naar het hoofdmenu.

Tip 115 - Vreemde zaken met de bestandsgrootte!

Iemand moet regelmatig bestanden meenemen op diskette of op een memory stick (een disk on key). Hierbij gebeurt het dat de bestanden net iets te groot zijn, en de oplossing die dan voor de hand ligt is zippen onder Windows (bijvoorbeeld met WinZip) of stuffen op de Mac (met Stuffit of ZipIt). Maar ook dan kan het gebeuren dat de bestanden nog te groot zijn. In dat geval kunnen we nog teruggrijpen naar de optie Save as compressed copy die we in het FileMaker-menu onder File vinden. De resultaten kunnen indrukwekkend zijn (zie hiervoor Tip 1), maar volgens onze correspondent kloppen de cijfers van de bestandsgrootte vaak niet. Op een memory stick van 32 MB blijken geen 32 mega's te passen!

Dit zit ietwat ingewikkeld in mekaar: het is immers zo dat op zo'n memory stick of op een diskette een aantal verborgen bestanden staan die ook schijfruimte innemen. De meest bekende voorbeelden daarvan zijn de bestanden die de Mac nodig heeft voor zijn prullenmand (de Trash Can met de gedelete bestanden) en de desktop-informatie (welke ikoontjes staan er op het bureaublad, waar en hoe). De Mac laat die bestanden niet zien, maar op een Windows-machine zijn ze wel zichtbaar.

Maar zelfs als we die hidden files opruimen, dan blijken de getallen vaak nog niet te kloppen. Er is dus meer aan de hand. Ook de grootte van onze bestanden schijnt mysterieuze bokkensprongen te maken.

Eerst nog dit: deze tip is niet geldig voor alle besturingssystemen en voor alle harddisk formats (de manier dus waarop een harde schijf geformatteerd is). Het gaat namelijk om de bestandsgrootte zoals die door het systeem wordt gemeld. Op sommige oudere systemen wordt de bestandsgrootte namelijk getoond als de clustergrootte en dat geeft bij Save as compressed copy soms rare toestanden.

Wat betekent dit precies en hoe heeft het te maken met de compressie van FileMaker-bestanden?

Een cluster is een deel van de harde schijf. Elke cluster wordt door het besturingssysteem van de computer herkend omdat hij een eigen geheugenadres heeft. Bij heel wat besturingssystemen is het aantal beschikbare geheugenadressen echter een vast gegeven en wordt de harde schijf ingedeeld volgens dat aantal.

Nemen we een eenvoudig voorbeeld: stel dat we 64.000 geheugenadressen hebben en een oude harde schijf van 100 Mb. Die 100 Mb wordt dan opgedeeld in 64.000 delen van elk 1562 bytes. Een bestandje van 1500 bytes heeft dus voldoende aan één enkele cluster (er blijven dan wel 62 bytes ongebruikt), maar vanaf 1563 bytes moeten we een tweede cluster aanspreken. Het bestand is dan 1563 groot, maar neemt wel 3124 bytes in beslag (waarvan er dan 1561 ongebruikt blijven, puur verlies dus!).

Natuurlijk gebruiken we vandaag veel grotere harde schijven, van verscheidene tientallen giga's. Hierdoor neemt de clustergrootte natuurlijk gigantisch toe. Zo zijn clusters van 32 Kb, 64 Kb en 128 Kb heel gewoon. Als we op zo'n cluster van 32,000 bytes een bestand wegschrijven van 100 bytes, dan gaan er dus 31,900 bytes voor het systeem verloren! Van verkwisting gesproken!*

Bij FileMaker-bestanden kan dit tot vreemde getallen aanleiding geven. Nemen we een bestandje van 19.456 bytes; het neemt op de harde schijf 32.769 bytes in beslag. En nog een voorbeeld: een bestand van 49 Kb (gemeld door Windows); in werkelijkheid is het bestand echter 50.176 bytes groot. Op de harddisk neemt het volgens Windows 64 Kb in beslag maar in werkelijkheid is het 65.536 bytes.


* Modernere besturingssystemen, zowel op Mac als op Windows, gebruiken een veel efficiëntere manier om bestanden weg te schrijven. Hierdoor neemt voor sommige gebruikers die bestanden kopiëren van de ene machine naar de andere de verwarring nog toe: het FileMaker-bestand schijnt heel de tijd van grootte te veranderen, naargelang de plaats waar het staat. Dit doet zich natuurlijk ook voor wanneer we een bestand van harddisk naar memory stick kopiëren en omgekeerd.

 

 
avd@avd-ci.be - contactformulier