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
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
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
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