{{ transformations:FileListAction.png}}
====== LIST OF FILES ======
Category: Create / Generate\\

\\ 
=====Description=====
This action creates a table with a list of files in the specified folder and their attributes.\\

\\ 
=====Use cases=====
Create a file list to be used later for iterations or file commands.\\

\\ 
=====Action settings=====
^ Setting  ^ Description  ^
|Folder<sup>*</sup>|The folder to extract the list of files from.|
|Columns|Provides options to select the types of data to return as fields in the dataset.  See below.|
|Subfolders|Provides options to scan through subfolders within the chosen folder.  See below.|
<sup>*</sup> Setting can be specified using a [[:parameters|parameter]].\\
\\ 
====Columns settings====
These options define the columns that will be included in the generated dataset. At least one option must be selected. 
^Option^Description^
|File name with pull path|Returns the fully-qualified file name including absolute path.  Default.|
|File name only|Returns the file name only, excluding path.|
|File extension|Returns the file's extension only.|
|Size|Returns the file's size, in bytes.|
|Date created|Returns the date the file was originally created.|
|Date modified|Returns the date the file was last edited.|
|Read-only|Returns a Boolean (TRUE/FALSE) value defining whether the file is set to read-only mode, or is editable (read/write).|
|Date last accessed|Returns the date the file was most recently accessed.|

\\ 
====Subfolders settings====
^Option^Description^
|Scan subfolders|Select this option to scan for files within subfolders under the selected Folder.|
|Scanning depth|The number of subfolder levels, under the parent folder, the action will scan within.  e.g. "1" will scan through the\\ subfolders found //directly// under the parent folder only; "2" will scan through the subfolders of the subfolders\\ (i.e. 2 levels deep) found under the parent folder.|
|Ignore scan errors|Select to ignore any errors produced when scanning subfolders for files.  This is useful for avoiding errors when\\ scanning folder depths that may not exist in all subfolders.|

\\
=====Examples=====
====Example #1====
>Create a list of files in the Documents folder.

===After (result table)===
^File name with full path ^Size ^
|**C:\Documents\File1.csv**  |  **2000**|
|**C:\Documents\File2.xlsx**  |  **350000**|
|**C:\Documents\File3.txt**  |  **1500**|
|**C:\Documents\File4.csv**  |  **70000**|
===Action parameters===
>Folder: C:\Documents
>Columns: File name with full path, Size

\\
====Example #2====
>Create a list of files in the Public Datasets folder and the subfolders directly under it
===After (result table)===
^File name with full path ^File extension ^Read-only ^
|**D:\Public Datasets\US Household Income\2020.csv**  |**.csv**  |  **FALSE**  |
|**D:\Public Datasets\US Household Income\2021.csv**  |**.csv**  |  **FALSE**  |
|**D:\Public Datasets\Titanic passenger list.xslx**  |**.xlsx**  |  **TRUE**  |
|**D:\Public Datasets\HTML code table.xls**  |**.xls**  |  **FALSE**  |
===Action parameters===
>Folder: D:\Public Datasets
>Columns: File name with full path, File extension, Read-only
>Subfolders: Scan subfolders
>Scanning depth: 1

\\ 
=====Community examples=====
  * [[https://community.easymorph.com/t//1475/1|Finding all projects with particular action]] ([[https://community.easymorph.com/uploads/short-url/cM8AssOT6zQXD8JDr9adUAy2sDM.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Documents//; Action position: //1//)
  * [[https://community.easymorph.com/t//1766/1|Load only workbooks with given number of sheets]] ([[https://community.easymorph.com/uploads/short-url/AbWPlfPVBecqgZUBVTYlljwb9NO.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Get file names to load//;\\ Action position: //1//)
  * [[https://community.easymorph.com/t//2063/2|Embedded connection - search for type email server]] ([[https://community.easymorph.com/uploads/short-url/c6uoEKu1XMEc4EFbUol4r0cQS2B.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Projects with email connectors//; Action position: //1//)

\\ 
=====Shortcuts=====
Fast ways to create the action:
  * Press the "Add data" menu button. Pick "Generate data".
  * Drag a folder with various file types into the application window.  Select "Generate a list of files in the folder".

\\ 
=====See also=====
  * [[transformations:folderlist|List of folders]]
  * [[transformations:iterate|Iterate]]
  * [[transformations:iterateprogram|Iterate external program]]
