Container bestandsnaam wijzigen

Wat?

Hernoemen van je container bestanden zonder export/import. Werkt in WebDirect, op de server, in FM Go, …

Hoe werkt het?

De techniek maakt gebruik van FM13’s nieuwe Base64Encode() & Base64Decode() functies. Bij het decoderen van een base64 tekst geeft FileMaker je de mogelijkheid om een bestandsnaam op te geven voor je nieuw bestand. Aan de hand van deze functie kunnen we een containerbestand dus een nieuwe naam geven.

De volledig functie ziet er dan als volgt uit:

Base64Decode ( Base64Encode ( Tabel::Container ) ; “NieuweBestandsNaam” )

Het voorbeeldbestand (link zie onderaan artikel) werkt aan de hand van een script dat het bestand hernoemt en de container dan vervangt met het nieuwe bestand. Je zou bijvoorbeeld ook kunnen werken met een Automatische Invoer om, bij het invoegen van een bestand, het bestand direct te hernoemen om zo al je bestanden een gelijkaardige naam te geven…

Waarom deze techniek gebruiken?

Niet enkel omdat het kan. Neen. Het is ook de enige manier om in WebDirect bestanden te hernoemen.

Nadelen?

Voor grote bestanden neemt het wel een beetje tijd in beslag vooraleer het bestand gecodeerd en terug gedecodeerd is. Bij test op een Mac met SSD schijf: container van 100MB: 30sec.

Maar je zou dit perfect kunnen overlaten aan de server adhv de scriptstap ‘Script op server uitvoeren’.

Update: 4/12/2014
Let op! Dit werkt wel niet met gecomprimeerde containers! Lees er alles over in het issue report van Vincent. Hier.

Update: 16/12/2014
Douglas Wallis, Responsable Technique – Southern Europe FileMaker, legt uit waarom en hoe je het probleem met de gecomprimeerde containers kunt omzeilen.
“De reden dat er een verschil is tussen de MD5 waarden van de ongecomprimeerde en gecomprimeerde containers, is omdat de achterliggende bestanden verschillen. In het voorbeeld van Vincent is de eigenlijke naam van het bestand: “Apple.txt”, maar de bestandsnaam van het gecomprimeerde bestand is eigenlijk “Apple.txt.gz”.
Dus wanneer je een geomprimeerde container hernoemt met deze techniek moet je zorgen dat het script aan de bestandsnaam ook de extensie “.gz” toevoegt. Op die manier hou je hetzelfde formaat en kan je het bestand ook later exporteren vanuit FileMaker.”

Klik hier voor het downloaden van het voorbeeldbestand ( in het engels ).