Note: You are looking at a static snapshot of documentation related to Robot Framework automations. The most recent documentation is at https://robocorp.com/docs

File system operations

The RPA.FileSystem library allows creating, copying, moving, overwriting, deleting or removing, checking for existence, listing files and directories, and many more file system operations. Here are some examples (check the RPA.FileSystem library documentation for all the available keywords):

Robot Framework example

*** Settings *** Documentation Examples of file operations. Library RPA.FileSystem *** Variables *** ${NEW_DIR_1}= new-dir-1 ${NEW_DIR_2}= new-dir-2 ${NEW_DIR_2_COPY}= copy-of-new-dir-2 ${TEXT_FILE}= file.txt ${TEXT_FILE_COPY}= copy-of-file.txt *** Tasks *** File operations ${dir_exists}= Does Directory Exist ${CURDIR} ${dir_does_not_exist}= Does Directory Not Exist ${CURDIR} ${dir_tree}= Log Directory Tree ${CURDIR} ${dir_is_empty}= Is Directory Empty ${CURDIR} ${dir_is_not_empty}= Is Directory Not Empty ${CURDIR} Create File ${TEXT_FILE} Hello overwrite=True Wait Until Created ${TEXT_FILE} Touch File ${TEXT_FILE} ${file_exists}= Does File Exist ${TEXT_FILE} ${file_does_not_exist}= Does File Not Exist ${TEXT_FILE} ${file_is_empty}= Is File Empty ${TEXT_FILE} ${file_is_not_empty}= Is File Not Empty ${TEXT_FILE} ${found_files}= Find Files \*.txt Append To File ${TEXT_FILE} World! ${text_content}= Read File ${TEXT_FILE} ${absolute_path}= Absolute Path ${TEXT_FILE} ${created}= Get File Creation Date ${TEXT_FILE} ${extension}= Get File Extension ${TEXT_FILE} ${modified}= Get File Modified Date ${TEXT_FILE} ${name}= Get File Name ${TEXT_FILE} ${size}= Get File Size ${TEXT_FILE} Copy File ${TEXT_FILE} ${TEXT_FILE_COPY} ${files}= List Files In Directory ${CURDIR} ${directories}= List Directories In Directory ${CURDIR} Create Directory ${NEW_DIR_1} ${files_to_move}= Create List ${TEXT_FILE} ${TEXT_FILE_COPY} Move Files ${files_to_move} ${NEW_DIR_1} overwrite=True Run Keyword If File Exists ... ${NEW_DIR_2}/${TEXT_FILE} ... Remove Directory ${NEW_DIR_2} recursive=True Move Directory ${NEW_DIR_1} ${NEW_DIR_2} overwrite=True Run Keyword And Ignore Error ... Copy Directory ${NEW_DIR_2} ${NEW_DIR_2_COPY} Run Keyword And Ignore Error ... Change File Extension ... ${NEW_DIR_2}/${TEXT_FILE_COPY} ... .md Empty Directory ${NEW_DIR_2_COPY}

Python example

from os import getcwd from time import sleep from RPA.FileSystem import FileSystem file_system = FileSystem() new_dir_1 = "new-dir-1" new_dir_2 = "new-dir-2" new_dir_2_copy = "copy-of-new-dir-2" text_file = "file.txt" text_file_copy = "copy-of-file.txt" def file_operations(): dir_exists = file_system.does_directory_exist(getcwd()) dir_does_not_exist = file_system.does_directory_not_exist(getcwd()) dir_tree = file_system.log_directory_tree(getcwd()) dir_is_empty = file_system.is_directory_empty(getcwd()) dir_is_not_empty = file_system.is_directory_empty(getcwd()) file_system.create_file(text_file, "Hello", overwrite=True) file_system.wait_until_created(text_file) file_system.touch_file(text_file) file_exists = file_system.does_file_exist(text_file) file_does_not_exist = file_system.does_file_not_exist(text_file) file_is_empty = file_system.is_file_empty(text_file) file_is_not_empty = file_system.is_file_not_empty(text_file) found_files = file_system.find_files("\* .txt") file_system.append_to_file(text_file, "World!") text_content = file_system.read_file(text_file) absolute_path = file_system.absolute_path(text_file) created = file_system.get_file_creation_date(text_file) extension = file_system.get_file_extension(text_file) modified = file_system.get_file_modified_date(text_file) name = file_system.get_file_name(text_file) size = file_system.get_file_size(text_file) file_system.copy_file(text_file, text_file_copy) files = file_system.list_files_in_directory(getcwd()) directories = file_system.list_directories_in_directory(getcwd()) file_system.create_directory(new_dir_1) files_to_move = [text_file, text_file_copy] file_system.move_files(files_to_move, new_dir_1, overwrite=True) if file_system.does_file_exist(f"{new_dir_2}/{text_file}"): file_system.remove_directory(new_dir_2, recursive=True) file_system.move_directory(new_dir_1, new_dir_2, overwrite=True) try: file_system.copy_directory(new_dir_2, new_dir_2_copy) file_system.change_file_extension( "{new_dir_2}/{text_file_copy}", ".md") except: print("Ignored error.") file_system.empty_directory(new_dir_2_copy) def main(): file_operations() if __name__ == "__main__": main()
Last edit: May 5, 2022