# Functions
CopyDir recursively copies a directory tree, attempting to preserve permissions.
CopyFile copies the contents of the file named src to the file named by dst.
Exists checks whether the specified path exists.
IsDirectory checks whether the specified path is a directory.
IsDirEmpty returns true if and only if the specified path denotes an empty directory, false otherwise.