alexmitev

DirectoryTraversal

Dec 22nd, 2015
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.05 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5.  
  6.  
  7. namespace DirectoryTransversal
  8. {
  9.     class Program
  10.     {
  11.         static void PrintDictionary (Dictionary<string, Dictionary<string, double>> fileCollection)
  12.         {
  13.             foreach(var extension in fileCollection)
  14.             {
  15.                 Console.WriteLine(extension.Key);
  16.                 foreach(var pair in extension.Value)
  17.                 {
  18.                     Console.WriteLine("file name: {0} - file size {1}", pair.Key, pair.Value);
  19.                 }
  20.             }
  21.         }
  22.         static void Main()
  23.         {
  24.             Dictionary<string, Dictionary<string, double>> fileCollection = new Dictionary<string, Dictionary<string, double>>();
  25.             string directory = @"../../";
  26.             DirectoryInfo dirFiles = new DirectoryInfo(directory);
  27.             foreach(FileInfo file in dirFiles.GetFiles())
  28.             {
  29.                 string extension = file.Extension.ToString();
  30.                 string name = file.Name.ToString();
  31.                 double size = file.Length;
  32.                 if (!fileCollection.ContainsKey(extension))
  33.                 {
  34.                     fileCollection[extension] = new Dictionary<string, double>();
  35.                 }
  36.                 fileCollection[extension].Add(name, size);
  37.             }
  38.             PrintDictionary(fileCollection);
  39.  
  40.             var sortedFiles = fileCollection.OrderByDescending(x => x.Value.Keys.Count).ThenBy(k => k.Value.Values);
  41.  
  42.             StreamWriter outputStream = new StreamWriter(string.Format("{0}log.txt", directory));
  43.             using (outputStream)
  44.             {
  45.                 foreach (var pair in sortedFiles)
  46.                 {
  47.                     outputStream.WriteLine(pair.Key.ToString());
  48.                     foreach (var file in pair.Value)
  49.                     {
  50.                         outputStream.WriteLine("file name: {0} - file size {1}", pair.Key, pair.Value);
  51.                     }
  52.                 }
  53.             }
  54.  
  55.            
  56.  
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment