How do I Get Folder Size in C#?
asp.net, c#, directory, size
Solution
How about this:
private static long GetDirectorySize(string folderPath)
{
DirectoryInfo di = new DirectoryInfo(folderPath);
return di.EnumerateFiles("*", SearchOption.AllDirectories).Sum(fi => fi.Length);
}
from here.
This will give you the size in bytes; you will have to "prettify" that into GBs or MBs.
NOTE: This only works in .NET 4+.
EDIT: Changed the wildcard search from `"*.*"` to `"*"` as per the comments in the thread to which I linked. This should extend its usability to other OSes (if using Mono, for example).
Problem
Possible Duplicate: How do I get a directory size (files in the directory) in C#? In vbscript, it's incredibly simple to get the folder size in GB or MB: ``` Set oFSO = CreateObject("Scripting.FileSystemObject") Dim fSize = CInt((oFSO.GetFolder(path).Size / 1024) / 1024) WScript.Echo fSize ``` In C#, with all my searches, all I can come up with are long, convoluted, recursive searches for every file size in all subfolders, then add them all up at the end. Is there no other way?