private double CalculateSize(DirectoryInfo parent)
{
if (!Directory.Exists(parent.ToString()))
return 0;
double size = 0;
try
{
// All files at this level.
foreach (FileInfo file in parent.GetFiles())
{
if (!file.Exists)
return 0;
size += file.Length;
}
// Recurse.
foreach (DirectoryInfo directory in parent.GetDirectories())
size += CalculateSize(directory);
}
catch (Exception)
{
return 0;
}
return size;
}
}