Thanks for the input!
The only issue I have with it, although a very minor one, is the use of try-catch statement as it comes with a small overhead.
Also, does ChangeWorkingDirectory work even if the target directory is several levels up or down?
For instance I am on /FolderA and the target folder is /FolderA/FolderA1/FolderA1a.