Temporäre Dateien: CreateUUID() oder RandRange()?

Mischa Sameli, Geschäftsführer & Leiter Entwicklung

Oftmals wird für kurze Zeit eine temporäre Datei benötigt, die einen eindeutigen Namen haben sollte. So kann verhindert werden, dass zwei gleichzeitige Prozesse die selbe temporäre Datei erzeugen und so das Resultat verfälschen. Traditionellerweise bedient man sich dabei der Funktion CreateUUID() – alternativ ist auch RandRange() denkbar.

Damit ein eindeutiger Dateiname erstellt werden kann, wird also in aller Regel die ColdFusion-Funktion CreateUUID() verwendet. Anhand von verschiedenen Parametern wird damit ein pro Server eindeutiger Schlüssel erzeugt – doppelte gibts nicht. Nun ist diese Funktion aber leider nicht allzu zügig, da unter anderem jedesmal die Systemzeit zur Berechnung des Schlüssels herbeigezogen wird.

Alternativ bietet sich deshalb eine andere Funktion an, die zwar nicht eindeutige Schlüssel erzeugt, für Temporäre Dateien, die nur sehr kurzfristig verwendet werden, aber sicher ausreicht: RandRange(1,x). Mit dieser Funktion wird eine Zufallszahl ermittelt zwischen 1 und x – und das recht flott. Wenn zweimal hintereinander die gleiche Zahl folgen würde, wäre das dann wirklich ein Zufall.