File actions
Important
To prevent unauthorized access, Windows requires administrator rights to access protected files. To access these resources using the file actions, run Power Automate with administrator rights. For more information about running Power Automate as an administrator, go to Run Power Automate with elevated rights.
Handling files and their content is essential for most automation scenarios. You can use the file actions to manage files, retrieve their properties, read and write data, and convert them to other types.
Most file actions require paths that specify the files you want to manipulate. These paths can be hard-coded values or file datatype variables.
Note
To provide many files as input, use a list variable with file items. A method to create a list of files is the Get files in folder action.
Similarly, you can populate a hard-coded value or a folder datatype variable to specify a destination folder in the actions that need one.
Some file actions provide an extensive configuration, allowing you to automate virtually any scenario. For example, the Rename file(s) action includes options to set a new name or add, replace or remove a text string to the existing file name.
To append text content or overwrite text files, deploy the Write text to file action. To read the content of a text file, use the Read text from file action.
Likewise, if you need to read or write content to CSV files, use the Read from CSV file and Write to CSV file actions. You can find an example desktop flow that handles CSV files in Convert a CSV file into an Excel spreadsheet.
If you want to check if a file exists in a specific folder, use the If file exists action. This action is a conditional and allows you to run different blocks of code depending on whether the file exists. To find more information about conditionals, go to Use conditionals.
If file exists
Marks the beginning of a conditional block of actions depending on whether a file exists or not.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
If file | N/A | Exists, Doesn't exist | Exists | The state of the file to check |
File path | No | File | The full path to look for the file |
Variables produced
This action doesn't produce any variables.
Exceptions
This action doesn't include any exceptions.
Wait for file
Suspend the execution of the automation until a file is created or deleted.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
Wait for file to be | N/A | Created, Deleted | Created | Specifies whether to pause the flow on the creation or deletion of a certain file |
File path | No | File | The full path to look for the file |
Variables produced
This action doesn't produce any variables.
Exceptions
This action doesn't include any exceptions.
Copy file(s)
Copy one or more files into a destination folder.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File(s) to copy | No | List of Files | The file(s) to copy. This value can be a file path, or a variable containing a file, a list of files, a text path, or a list of text paths. Use the 'Get files in folder' action to populate a variable with a list of files. | |
Destination folder | No | Folder | The destination folder for the copied files | |
If file exists | N/A | Do nothing, Overwrite | Do nothing | Specifies what to do if a file with the same name already exists in the destination folder |
Variables produced
Argument | Type | Description |
---|---|---|
CopiedFiles | List of Files | The copied file(s) as a list of files |
Exceptions
Exception | Description |
---|---|
Source folder doesn't exist | Indicates that the source folder doesn't exist |
Destination folder doesn't exist | Indicates that the destination folder doesn't exist |
File not found | Indicates that the file doesn't exist |
Can't copy file | Indicates a problem copying the file |
Move file(s)
Move one or more files into a destination folder.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File(s) to move | No | List of Files | The file(s) to move. This value can be a file path, or a variable containing a file, a list of files, a textual path, or a list of text paths. Use the 'Get files in folder' action to populate a variable with a list of files. | |
Destination folder | No | Folder | The destination folder for the moved files | |
If file exists | N/A | Do nothing, Overwrite | Do nothing | Specifies what to do if a file with the same name already exists in the destination folder |
Variables produced
Argument | Type | Description |
---|---|---|
MovedFiles | List of Files | The moved file(s) as a list of files |
Exceptions
Exception | Description |
---|---|
Source folder doesn't exist | Indicates that the source folder doesn't exist |
Destination folder doesn't exist | Indicates that the destination folder doesn't exist |
File not found | Indicates that the file doesn't exist |
Can't move file | Indicates a problem moving the file |
Delete file(s)
Delete one or more files.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File(s) to delete | No | List of Files | The file(s) to delete. This value can be a file path, or a variable containing a file, a list of files, a text path, or a list of text paths. Use the 'Get files in folder' to populate a variable with a list of files |
Variables produced
This action doesn't produce any variables.
Exceptions
Exception | Description |
---|---|
File path doesn't exist | Indicates that the file path doesn't exist |
File not found | Indicates that the file doesn't exist |
Can't delete file | Indicates a problem deleting the file |
Rename file(s)
Change the name of one or more files.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File to rename | No | List of Files | The file(s) to rename. This value can be a file path, or a variable containing a file, a list of files, a text path, or a list of text paths. Use the 'Get files in folder' action to populate a variable with a list of files. | |
Add number to | N/A | Boolean value | True | Specifies whether to add the number to the existing file name(s) or a new name |
Rename scheme | N/A | Set new name, Add text, Remove text, Replace text, Change extension, Add datetime, Make sequential | Set new name | Specifies how to rename the file(s) |
New file name | No | Text value | The new name of the file(s) | |
New extension | Yes | Text value | The text to add as the new extension for the file(s) | |
New file name | No | Text value | The new name of the file(s) | |
Add number to | N/A | After name, Before name | After name | Specifies whether to add the number before or after the original name(s) or a new base name |
Text to add | Yes | Text value | The text to add to the original file name(s) | |
Text to remove | Yes | Text value | The text to remove from the original file name(s). This rename scheme searches each file name, and removes the entered text anywhere in the name, each time it occurs. | |
Text to replace | No | Text value | The text to replace in the original file name(s). This rename scheme searches each file name, and replaces the entered text anywhere in the name, each time it occurs | |
Use custom datetime | N/A | Boolean value | False | Specifies whether to use a custom datetime |
Datetime to add | N/A | Current datetime, Creation time, Last accessed, Last modified | Current datetime | Specifies what datetime value to add to the file name(s) |
Keep extension | N/A | Boolean value | True | Specifies whether to include the previous extension with the file name(s). Disable this option to add the extension to the file(s) manually. |
Replace with | Yes | Text value | The text to replace the original text with | |
Start numbering at | No | Numeric value | The starting number value | |
Add text | N/A | After name, Before name | After name | Specifies whether to add the text before or after the original name(s) |
Custom datetime | No | Datetime | The datetime to add to the file name(s) | |
Increment by | No | Numeric value | The number to increment the starting value by | |
Add datetime | N/A | After name, Before name | After name | Specifies whether to add the datetime before or after the original name(s) |
Separator | N/A | Nothing, Space, Dash, Period, Underscore | Space | Specifies what to use to separate the original file name and the number added, including the option to not use a separator |
Separator | N/A | Nothing, Space, Dash, Period, Underscore | Space | Specifies what to use to separate the original file name and the datetime value added, including the option to not use a separator |
Use padding | N/A | Boolean value | False | Specifies whether to use padding |
Datetime format | No | Text value | yyyyMMdd | The format of the datetime value to add to the file name, such as MM/dd/yyyy for date, and hh:mm:sstt for time |
Make each number at least | Yes | Numeric value | 3 | The minimum length for each number added |
If file exists | N/A | Do nothing, Overwrite | Do nothing | Specifies what to do if a file with the same name already exists in the folder |
Variables produced
Argument | Type | Description |
---|---|---|
RenamedFiles | List of Files | The renamed file(s) as a list of files |
Exceptions
Exception | Description |
---|---|
Directory not found | Indicates that the directory wasn't found |
File not found | Indicates that the file doesn't exist |
Can't rename file | Indicates a problem renaming the file |
Read text from file
Read the contents of a text file.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File path | No | File | The file to read | |
Store content as | N/A | Single text value, List (each is a list item) | Single text value | Specifies how to store the text. Choose 'Single text value' to store the entire text as a single text value. Choose 'List' to store each line of the original text as a text item in a list. |
Encoding | N/A | System default, ASCII, Unicode, Unicode (big-endian), UTF-8 | UTF-8 | The encoding to read the specified text from the text file with. |
Variables produced
Argument | Type | Description |
---|---|---|
FileContents | Text value | The contents as a text |
FileContents | List of Text values | The contents as a list of texts |
Exceptions
Exception | Description |
---|---|
Directory not found | Indicates that the directory wasn't found |
File not found | Indicates that the file doesn't exist |
Failed to read from file | Indicates a problem reading from the file |
Write text to file
Write or appends text to a file.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File path | No | File | The file to write the text. This value can be a file path, or a variable containing a file or a textual path. | |
Text to write | Yes | General value | The text to write in the specified file | |
Append new line | N/A | Boolean value | True | Specifies whether to append a new line at the end of the overall text to write to the file |
If file exists | N/A | Overwrite existing content, Append content | Overwrite existing content | Specifies whether to overwrite the existing content, or to append to the end of the existing content. If the file doesn't exist, this action automatically creates it. |
Encoding | N/A | System default, ASCII, Unicode, Unicode (big-endian), UTF-8, Unicode (without byte order mask), UTF-8 (without byte order mask) | Unicode | The encoding to use for the specified text to write into the text file |
Variables produced
This action doesn't produce any variables.
Exceptions
Exception | Description |
---|---|
Failed to write text to file | Indicates a problem writing to the file |
Invalid directory for file | Indicates that the directory is invalid |
Read from CSV file
Read a CSV file into a data table.
You can use the Read from CSV file action to create a datatable variable with the file's contents. You need to define the path to the CSV file and the encoding to use for reading it, while you can also trim any whitespaces from the extracted cells, handle the first line as column headers, and specify the columns separator.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File path | No | File | The CSV file to read. This value can be a file path, or a variable containing a file or a textual path | |
Encoding | N/A | UTF-8, Unicode, Unicode (big-endian), UTF-8 (No byte order mark), Unicode (no byte order mark), System default, ASCII | UTF-8 | The encoding to be used for reading the specified CSV file |
Trim fields | N/A | Boolean value | True | Specifies whether to automatically trim off the leading and trailing whitespaces of the extracted cells |
First line contains column names | N/A | Boolean value | False | Specifies whether to use the first row of the CSV resource to set the column names of the resulting data table variant. Enable this option to avoid reading the names as data into the table. Subsequent actions may access the data held by the data table using column names (instead of column numbers). |
Columns separator | N/A | Predefined, Custom, Fixed column widths | Predefined | Specifies whether to use a predefined columns separator, a custom one or fixed column widths |
Separator | N/A | System default, Comma, Semicolon, Tab | System default | The column-separator to parse the CSV file |
Custom separator | No | Text value | The custom column-separator to use for parsing the CSV resource specified | |
Fixed column widths | No | Text value | The fixed column-widths to use for parsing the CSV resource specified. Separate the widths using commas, spaces, tabs or newlines. |
Variables produced
Argument | Type | Description |
---|---|---|
CSVTable | Datatable | The contents of the CSV file as a data table |
Exceptions
Exception | Description |
---|---|
Read from CSV failed | Indicates a problem reading from the CSV file |
Write to CSV file
Write a data table, data row or list to a CSV file.
Use the Write to CSV file action to write a data table, data row or list variable to a target CSV file. In the File path parameter, specify the file path or variable containing a file or textual path where the data will be exported to.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
Variable to write | No | General value | The data table, data row variable or list variable to write into the target CSV file | |
File path | No | File | The CSV file to export the variable to. This value can be a file path, or a variable containing a file or a textual path. | |
Encoding | N/A | UTF-8, Unicode, Unicode (big-endian), UTF-8 (No byte order mark), Unicode (no byte order mark), System default, ASCII | UTF-8 | The encoding to use for writing to the specified CSV file |
Include column names | N/A | Boolean value | False | Specifies whether the column names of the variant specified should become the first row of the CSV file. This option takes effect if and only if the target CSV file either doesn't initially exist or exists but is otherwise empty of text. |
If file exists | N/A | Overwrite existing content, Append content | Overwrite existing content | Specifies the desired behavior when the targeted CSV file already exists in the filesystem |
Separator | N/A | System default, Comma, Semicolon, Tab | System default | The column separator to use in the specified CSV file |
Custom columns separator | No | Text value | The custom column separator to use in the CSV file | |
Use custom columns separator | N/A | Boolean value | False | Specifies whether to use a custom columns separator or a predefined one |
Variables produced
This action doesn't produce any variables.
Exceptions
Exception | Description |
---|---|
Write failed | Indicates a problem writing to the CSV file |
Get file path part
Retrieve one or more parts (directory, filename, extension, etc.) from a text that represents a file path.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File path | No | File | The file path to use as the source |
Variables produced
Argument | Type | Description |
---|---|---|
RootPath | File | The root path of the source file |
Directory | Folder | The directory of the source file |
FileName | Text value | The name of the source file |
FileNameNoExtension | Text value | The file name (without the extension) of the source file |
FileExtension | Text value | The extension (for example, .doc) of the source file |
Exceptions
Exception | Description |
---|---|
File path contains invalid characters | Indicates that the file path doesn't exist |
Get temporary file
Create a uniquely named, empty temporary file on disk, and get the file object (which is a representation, and can access the file and all its information).
Input parameters
This action doesn't require any input.
Variables produced
Argument | Type | Description |
---|---|---|
TempFile | File | The temporary file object |
Exceptions
Exception | Description |
---|---|
Failed to create temporary file | Indicates a problem creating a temporary file |
Convert file to Base64
Convert a file to Base64 encoded text.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File path | No | File | The file path to read from |
Variables produced
Argument | Type | Description |
---|---|---|
Base64Text | Text value | The Base64 encoded text |
Exceptions
Exception | Description |
---|---|
File not found | Indicates that the file doesn't exist |
Can't convert file to Base64 | Indicates that the provided file can't be converted into Base64 encoded text |
Convert Base64 to file
Convert a Base64 encoded text to file.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
Base64 encoded text | No | Text value | The Base64 encoded text | |
File path | No | File | The file to write to | |
If file exists | N/A | Do nothing, Overwrite | Do nothing | Specifies what to do if a file with the same name already exists in the destination folder |
Variables produced
This action doesn't produce any variables.
Exceptions
Exception | Description |
---|---|
Invalid directory for file | Indicates that the directory is invalid |
Can't convert Base64 to file | Indicates that the provided Base64 encoded text can't be converted into a file |
Convert file to binary data
Convert a file to binary data.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
File path | No | File | The file to read from |
Variables produced
Argument | Type | Description |
---|---|---|
BinaryData | Text value | The binary data to write |
Exceptions
Exception | Description |
---|---|
File not found | Indicates that the file doesn't exist |
Can't convert file to binary data | Indicates that the provided file can't be converted to binary data |
Convert binary data to file
Convert binary data to file.
Input parameters
Argument | Optional | Accepts | Default Value | Description |
---|---|---|---|---|
Binary data | No | Text value | The binary data | |
File path | No | File | The file to write to | |
If file exists | N/A | Do nothing, Overwrite | Do nothing | Specifies what to do if a file with the same name already exists in the destination folder |
Variables produced
This action doesn't produce any variables.
Exceptions
Exception | Description |
---|---|
Invalid directory for file | Indicates that the directory is invalid |
Can't convert binary file to file | Indicates that the provided binary data can't be converted into a file |