C# facilities for dealing with folders
Especially for batch applications, the ability to deal with folders is important. This post documents the C# facilities that can give our applications the ability to work with folders.
Get the folder path which the executing binary is running in
string exeFolderPath
= System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
Check whether a folder exists
// Check if there is a folder named as techcoil in the same directory
// as the running executable.
if (System.IO.Directory.Exists(Path.Combine(exeFolderPath, "techcoil")))
{
Console.WriteLine("Folder exists.");
}
else
{
Console.WriteLine("Folder does not exists.");
} // end if
Create a folder
// Create a folder named as techcoil in the same folder as the // executing binary. Directory.CreateDirectory(Path.Combine(exeFolderPath, "techcoil"));
Rename a folder
// Rename the folder from techcoil to new_techcoil
Directory.Move("techcoil", "new_techcoil");
Delete a folder
// Delete the folder named as techcoil that exists in the same folder as the // executing binary, recursively. Directory.Delete(Path.Combine(exeFolderPath, "techcoil"), true);
Get some information about a folder
DirectoryInfo techcoilInfo = new DirectoryInfo("techcoil");
// Get the time when the folder is first created
Console.WriteLine(techcoilInfo.CreationTime);
// Get the full path of the directory
Console.WriteLine(techcoilInfo.FullName);
// Get the last occurence when the folder is being accessed
Console.WriteLine(techcoilInfo.LastAccessTime);
// Get the last occurence when the folder is written to
Console.WriteLine(techcoilInfo.LastWriteTime);
// Get the full name of the parent folder of techcoil
Console.WriteLine(techcoilInfo.Parent.FullName);
Get list of files in a folder
// Get a list of pathnames of files that are in the techcoil folder.
IEnumerable<string> filesInTechcoil = Directory.EnumerateFiles("techcoil");
// Print the list of pathnames
foreach (string filePath in filesInTechcoil)
{
Console.WriteLine(filePath);
} // end foreach
Get a list of folders in a folder
// Get the pathnames
IEnumerable<string> foldersInTechcoil = Directory.EnumerateDirectories("techcoil");
foreach (string folderPath in foldersInTechcoil)
{
Console.WriteLine(folderPath);
} // end foreach