static void ListDirectory(DirectoryInfoBase dir)
{
FileSystemInfoBase[] children = dir.GetFileSystemInfos();
Console.WriteLine();
Console.WriteLine(" Directory of {0}", dir.FullName.TrimEnd('\\'));
Console.WriteLine();
foreach (DirectoryInfoBase info in children.Where(d => d is DirectoryInfoBase))
{
Console.WriteLine(String.Format("{0} <DIR> {1}", ToDisplayString(info.LastWriteTime), info.Name));
}
int count = 0;
long total = 0;
foreach (FileInfoBase info in children.Where(d => !(d is DirectoryInfoBase)))
{
FileInfoBase file = (FileInfoBase)info;
Console.WriteLine(String.Format("{0} {1,17} {2}", ToDisplayString(info.LastWriteTime), file.Length.ToString("#,##0"), info.Name));
total += file.Length;
++count;
}
Console.WriteLine(String.Format("{0,16} File(s) {1,14} bytes", count.ToString("#,##0"), total.ToString("#,##0")));
}