Copy a directory to a temp directory temporarily to perform mutations, to then copy it back. If any exceptions are raised within the block, the changes will not be copied back.
>= 0
Daniel Inkpen