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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

ultimatemindsettoday

A great WordPress.com site

iReadable { }

.NET Tips & Tricks

Robin Sedlaczek's Blog

Developer on Microsoft Technologies

HarsH ReaLiTy

A Good Blog is Hard to Find

Softwarearchitektur in der Praxis

Wissenswertes zu Webentwicklung, Domain-Driven Design und Microservices

the software architecture

thoughts, ideas, diagrams,enterprise code, design pattern , solution designs

Technology Talks

on Microsoft technologies, Web, Android and others

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog

Anything around ASP.NET MVC,WEB API, WCF, Entity Framework & AngularJS

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: