+File2)Rename File1 as File2. The semantics is compatible
to the semantics of the POSIX rename() system call as far as the
operating system allows. Notably, if File2 exists, the
operation succeeds (except for possible permission errors) and is atomic
(meaning there is no window where File2 does not exist). Note
File2 cannot be an existing directory.157The
POSIX semantics describe one exception: a directory can be moved to an
existing empty directory. To move a file to
another directory one must create File2 from the target
directory and the base name of File1. See file_base_name/2.
The rename() system call has a large number of error conditions.
Errors are mapped to Prolog exceptions using a generic conversion based
File1 argument. As a result, the errors may be confusing.
Future versions may improve on this.