4.36 File System Interaction
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Built-in Predicates
        • File System Interaction
          • access_file/2
          • exists_file/1
          • file_directory_name/2
          • file_base_name/2
          • same_file/2
          • exists_directory/1
          • delete_file/1
          • rename_file/2
          • size_file/2
          • time_file/2
          • absolute_file_name/2
          • absolute_file_name/3
          • is_absolute_file_name/1
          • file_name_extension/3
          • directory_files/2
          • expand_file_name/2
          • prolog_to_os_filename/2
          • read_link/3
          • tmp_file/2
          • tmp_file_stream/3
          • make_directory/1
          • delete_directory/1
          • working_directory/2
          • chdir/1
    • Packages
Availability:built-in
rename_file(+File1, +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 that File2 cannot be an existing directory.156The 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 on the File1 argument. As a result, the errors may be confusing. Future versions may improve on this.