Inspecting the directories on the local PC using C# .NET

In this post we saw how to enumerate all the drives on your Windows machine. Once you have the drive name, such as C:\ you can start digging into it to see what files and folders it contains.

The DirectoryInfo object is the entry point to the exercise:

DirectoryInfo directoryInfo = new DirectoryInfo(@"c:\");

The empty GetDirectories() method will find all subfolders directly under “c:\” i.e. exclude the subfolders within the folders on c:\

DirectoryInfo[] allSubFolders = directoryInfo.GetDirectories();
foreach (DirectoryInfo subFolder in allSubFolders)
{
	Console.WriteLine("Sub directory name: {0}", subFolder.Name);
        Console.WriteLine("Sub directory creation time: {0}", subFolder.CreationTimeUtc);
}

DirectoryInfo has several other properties such as last access time that can be interesting for you.

GetDirectories has two overloads which let you search for a folder. The following will list all subdirectories whose name starts with an “a”:

DirectoryInfo[] searchedFolders = directoryInfo.GetDirectories("a*");

…and this is how you extend the search to all directories under c:\

DirectoryInfo[] searchedFolders = directoryInfo.GetDirectories("a*", SearchOption.AllDirectories);

The search is case-insensitive so this returns all folders starting with “a” and “A”.

You can search for files in much the same way. The file-equivalent class of DirectoryInfo is FileInfo. This is how to list all files available directly within a directory:

FileInfo[] filesInDir = directoryInfo.GetFiles();

GetFiles() also has overloads similar to GetDirectories that enable you to search for files.

Read all posts dedicated to file I/O here.

Advertisements

About Andras Nemes
I'm a .NET/Java developer living and working in Stockholm, Sweden.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

ultimatemindsettoday

A great WordPress.com site

Elliot Balynn's Blog

A directory of wonderful thoughts

Robin Sedlaczek's Blog

Developer on Microsoft Technologies

Softwarearchitektur in der Praxis

Wissenswertes zu Webentwicklung, Domain-Driven Design und Microservices

Technology Talks

on Microsoft technologies, Web, Android and others

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog

WEB APPLICATION DEVELOPMENT BEST PRACTICES WITH MICROSOFT STACK & ANGULAR

Cyber Matters

Bite-size insight on Cyber Security for the not too technical.

Guru N Guns's

OneSolution To dOTnET.

Johnny Zraiby

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

%d bloggers like this: