private long GetFilesSize(String path) ... { DirectoryInfo directoryInfo = new DirectoryInfo(path); long length = 0; foreach (FileSystemInfo fsi in directoryInfo.GetFileSystemInfos()) ...{ if (fsi is FileInfo) ...{ length += ((FileInfo)fsi).Length; } else ...{ length += GetFilesSize(fsi.FullName); } } return length; }