Datei umbenennen

Wir missbrauchen dafür den Befehl „RENAME“ indem wir versuchen die Datei umzubenennen. Da dies ja nicht der eigentliche Wunsch ist, sagen wir dem Befehl stumpf, dass der neue Dateiname der alte ist. Das könnte dann so aussehen:

IF NOT RENAME('C:\Test.txt', 'C:\Test.txt') THEN
	ERROR('Datei ist in Benutzung. Vorgang wird abgebrochen!');

Kann Navision die Datei nicht umbenennen, ist die Datei höchstwahrscheinlich im Zugriff durch ein anderes Programm oder es sind nicht ausreichende Zugriffsrechte auf Windows-Ebene vorhanden. Zu beachten ist noch, dass bei diesem Vorgang zwar der eigentliche Inhalt der Datei unangetastet bleibt, der Zeitstempel der Datei aber aktualisiert wird.

Wenn jedoch die Datei zwingend benutzt werden muss und durch ein anderes Programm bzw. Prozess der Zugriff verweigert wird, könnte der C/AL-Code folgendermaßen aussehen:

REPEAT
	SLEEP(2000);
UNTIL FILE.RENAME('C:\Test.txt', 'C:\Test.txt');

MESSAGE('Datei kann ab jetzt im C/AL-Code genutzt werden!');

Hier wird alle zwei Sekunden geprüft, ob die Datei in Benutzung ist. Ist sie das irgendwann nicht mehr, wird die Schleife verlassen und der restliche C/AL-Code ausgeführt.