internal static void Main() { string decorationLine = new string('-', Console.WindowWidth); Console.Write(decorationLine); Console.WriteLine("***Implementing a file system starting from C:\\WINDOWS with"); Console.WriteLine("operation of getting the total size of a folder by choice***"); Console.Write(decorationLine); string rootFolderName = "WINDOWS"; Folder rootFolder = new Folder(rootFolderName); string startPath = "C:"; Console.Write("Building the file system. Takes some time..."); BuildFileSystem(rootFolder, startPath); Console.WriteLine("\nBuild completed!"); StringBuilder fileSystemString = new StringBuilder(); BuildFileSystemString(rootFolder, fileSystemString); using (StreamWriter writer = new StreamWriter(FileSystemDestination)) { writer.Write(fileSystemString); } Console.WriteLine( "{0}Look file '{1}' at project's directory to see the \nfile system string representation", Environment.NewLine, FileSystemDestination.Substring(FileSystemDestination.LastIndexOf('/') + 1)); Console.WriteLine( "{0}The size of the '{1}\\{2}' folder is: {3} bytes", Environment.NewLine, startPath, rootFolderName, rootFolder.GetSize().ToString("0,0", CultureInfo.InvariantCulture)); string folderName = "Fonts"; Folder folder = GetFolderFromFileSystem(folderName, rootFolder); Console.WriteLine("\nThe size of the '{0}' folder in {1}\\{2} is: {3} bytes", folder.Name, startPath, rootFolderName, folder.GetSize().ToString("0,0", CultureInfo.InvariantCulture)); }