🦉 🔖 [CheatSheet] - Filesystem APIs

This CheatSheet introduces the basic use of available functionalities provided by the .Net API in order to deal with the filesystem. With further examples also special cases are presented.

Basic Usage

System.IO.Directory

Directory offers some static methods for basic operations on folder and subfolders

arrFullFilePaths | String() = Directory.GetFiles("C:\_demo\FileSystem\SubfolderA")

Visuals

grafik

grafik

System.IO.DirectoryInfo

The DirectoryInfo class offers instance methods for basic operations on folder and subfolders

arrFilesFI = new DirectoryInfo("C:\_demo\FileSystem\SubfolderA").GetFiles

Visuals

grafik

System.IO File / FileInfo

Similar to above we do have the same for files

File.GetCreationTime("C:\_demo\FileSystem\SubfolderA\Inventory_2020.xlsx")
new FileInfo("C:\_demo\FileSystem\SubfolderA\Inventory_2020.xlsx").CreationTime
Visuals

grafik

File Retrieval

MyDirPathVar = "C:\_demo\FileSystem\SubfolderA"

arrFullFilePaths | datatype: String() =

Directory.GetFiles(MyDirPathVar)
Directory.GetFiles(MyDirPathVar,"*.txt")
Directory.GetFiles(MyDirPathVar,"Report*.xlsx")
Directory.GetFiles(MyDirPathVar,"*.*",SearchOption.AllDirectories)

arrFilesFI | datatype: FileInfo() =

New DirectoryInfo(MyDirPathVar).GetFiles()
New DirectoryInfo(MyDirPathVar).GetFiles("Report*.xlsx")
New DirectoryInfo(MyDirPathVar).GetFiles("*.*",SearchOption.AllDirectories)

Folder Retrieval

Directory.GetDirectories("C:\_demo\FileSystem\")
Directory.GetDirectories("C:\_demo\FileSystem","*",SearchOption.AllDirectories)
new DirectoryInfo("C:\_demo\FileSystem").GetDirectories()
new DirectoryInfo("C:\_demo\FileSystem").GetDirectories("*", SearchOption.AllDirectories)

FileSystem Entries Retrieval

Directory.GetFileSystemEntries("C:\_demo\FileSystem")
Directory.GetFileSystemEntries("C:\_demo\FileSystem","*", SearchOption.AllDirectories)
new DirectoryInfo("C:\_demo\FileSystem").GetFileSystemInfos()
new DirectoryInfo("C:\_demo\FileSystem").GetFileSystemInfos("*", SearchOption.AllDirectories)
new DirectoryInfo("C:\_demo\FileSystem").EnumerateFiles("*",SearchOption.AllDirectories)

File Property Retrieval

Path.GetFileNameWithoutExtension("C:\Temp\abc.txt")
New FileInfo("C:\Temp\abc.txt").Extension
File.GetCreationTime("C:\Temp\abc.txt")
New FileInfo("C:\Temp\abc.txt").CreationTime

File Paths

Path.Combine("C:\","Temp","abc.txt")
Path.GetDirectoryName("C:\Temp\abc.txt")
new FileInfo("C:\Temp\abc.txt").DirectoryName
New FileInfo("C:\Temp\SubfolderA\abc.txt").Directory.Parent
New FileInfo("C:\Temp\SubfolderA\abc.txt").Folder
New FileInfo("C:\Temp\SubfolderA\abc.txt").Folder.Split({"\"}, StringSplitOptions.RemoveEmptyEntries)
("C:\Temp\SubfolderA\abc.txt").Folder.Split({"\"}, StringSplitOptions.RemoveEmptyEntries)

File Retrieval - Advanced Filtering

Filter - Creation Time

arrFilesFI  = new DirectoryInfo("C:\").GetFiles().Where(Function (x) x.CreationTime.Date < Now.Date).toArray
myFileInfo = new DirectoryInfo("C:\").GetFiles().OrderBy(Function (x) x.CreationTime).Last()
myFileInfo = new DirectoryInfo("C:\").GetFiles().OrderBy(Function (x) x.CreationTime).First()

Filter on: x.CreationTime.Date < Now.Date - get all files created before today
Retrieve: x.CreationTime).Last() - newest created file FileInfo
Retrieve: x.CreationTime).First() - oldest created file FileInfo


Filter - Regex Pattern

Filter all file names matching a regex pattern:

(From fi In New DirectoryInfo("C:\_RPA\_Demo").GetFiles()
Where Regex.IsMAtch(fi.Name,"\(\d+\)\.docx$", RegexOptions.IgnoreCase)
Select fi.FullName).toArray

Filter - Filetype Extension

Filter on multiple file extensions:

DirectoryInfo based

new DirectoryInfo("C:\").GetFiles().Where(Function (x) {".pdf",".txt"}.Contains(x.Extension)).toArray

Directory.GetFiles based

arrFullFilePaths | String() - String Array =

(From f in Directory.GetFiles(MyDirPathVar)
Let xt = Path.GetExtension(f).toUpper.Replace(".","")
Where {"PDF","TXT","XML"}.Contains(xt)
Select fp = f).toArray

References

Questions

For questions on your file system API case open a new topic and get individual support

21 Likes
How to create data table from for each output
Forum Engagement Daily Reports
How to looping and filter all files excel in Directory
How to create an array filtering filenames?
Need help on Concatenation
Get files in folder inside folder
How to open previous excel file, if i have two excels in a folder, if created in different dates
Skipping the top 3 rows in Excel
Read files based on date
How to delete files which is created before specific date from a folder
Xml file reading and extracting some information from it
Folder appears in taskbar ,but doesn't Open folder's UI
Bookmark of Bookmarksss… Let’s cherish 2021
Get Latest Files in Directory
Getting Name of subfolder
For each file in directory, get path, file name and create date
How to read multiple invoices in subfolders
Select most recent excel file downloaded
Can I make a double "for each" loop?
How do I select files that match my kewords?
How can I add different validation of a document extension, if I´m using GetFiles?
Check file exists or does not in these folders
Error : "ERROR Validation Error Compiler error(s) encountered processing expression "new FileInfo(Invoicess)".(2) : error BC30451: 'Invoices' is not declared. It may be inaccessible due to its protection level. Main.xaml"
Compare folder file names with excel data
How to use project's folder without using hard code?
How to select Specific Files for a Folder
Display all files in folder in UiPath Form
Retrieve Page Count from Multi Page Tiff files
How to get files ending with particular extension
Get newest file in the directory
How can i Extract the entire folder hierarchy
How to Assign and Read a Text File?
Merge & Join
Loop for excels in a folder
Consulta editor de expresiones carpeta de descarga
Paste images in outlook mail body
"FOE EACH FILE IN FOLDER" - How to use NOT logic in filter field?
:owl: :bookmark: [CheatSheet] VB.Net CheatSheet Catalogue
Compare two files in a folder to find the smallest one in size
Sort Array of files in ascending order
¿Cómo puedo obtener carpetas dentro de otras carpetas?
Non-invocable member 'FileInfo' cannot be used like a method