An empty folder:
- Has no files.
- Either has no folders, or has folders that are empty.
In this article I’ll show code that finds empty folders based on this definition.
Code that finds empty folders
Given a root folder path, the following code recursively looks for empty folders and writes the empty folder path to the console.
static void Main(string[] args)
{
string rootPath = @"C:\temp\EmptyFolderFinderTest";
Console.WriteLine($"Finding all empty folders in {rootPath}");
if(IsEmpty(rootPath))
{
Console.WriteLine("Empty all the way down");
}
}
private static bool IsEmpty(string folderPath)
{
bool allSubFoldersEmpty = true;
foreach(var subFolder in Directory.EnumerateDirectories(folderPath))
{
if (IsEmpty(subFolder))
{
Console.WriteLine($"Empty: {subFolder}");
}
else
{
allSubFoldersEmpty = false;
}
}
if(allSubFoldersEmpty && !HasFiles(folderPath))
{
return true;
}
return false;
}
private static bool HasFiles(string folderPath)
{
return Directory.EnumerateFiles(folderPath).Any();
}
Code language: C# (cs)
Results – finding empty folders
I ran this against the root folder C:\temp\EmptyFolderFinderTest\, which has the following structure:
- \ThisHasAHiddenFile\
- log.txt (hidden)
- \ThisHasFoldersWithStuffInThem\
- \Empty\
- \HasAFile\
- log.txt
- \ThisIsEmpty\
- \ThisOnlyHasEmptyFolders\
- \Empty\
It correctly found all of the empty folders:
