Bryce's code uses FreeFileHandle to create one dynamic handle rather than arbitrating two different fixed handles.
His code does not try to close a file that failed to open.

Those two IMHO, make his better. Removing vars and macros from the strings would be icing on the cake.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.