Advertisement
vencinachev

Directory traverse

Oct 15th, 2022
707
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.04 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace TreePractical
  9. {
  10.     class Program
  11.     {
  12.         /*private static void TraverseDir(DirectoryInfo dir, string spaces)
  13.         {
  14.              Console.WriteLine(spaces + dir.FullName);
  15.              DirectoryInfo[] children = dir.GetDirectories();
  16.              foreach (DirectoryInfo child in children)
  17.              {
  18.                  TraverseDir(child, spaces + "  ");
  19.              }
  20.          }
  21.        
  22.          public static void TraverseDir(string directoryPath)
  23.          {
  24.             TraverseDir(new DirectoryInfo(directoryPath), string.Empty);
  25.          }
  26.          */
  27.  
  28.         public static void PrintBFS(string dirName)
  29.         {
  30.             DirectoryInfo dir = new DirectoryInfo(dirName);
  31.             Queue<DirectoryInfo> visited = new Queue<DirectoryInfo>();
  32.             visited.Enqueue(dir);
  33.             while (visited.Count != 0)
  34.             {
  35.                 DirectoryInfo current = visited.Dequeue();
  36.                 Console.WriteLine(current.FullName);
  37.                 FileInfo[] files = current.GetFiles();
  38.                 foreach (var item in files)
  39.                 {
  40.                     Console.WriteLine(item.FullName);
  41.                 }
  42.                 DirectoryInfo[] children = current.GetDirectories();
  43.                 foreach (DirectoryInfo child in children)
  44.                 {
  45.                     visited.Enqueue(child);
  46.                 }
  47.             }
  48.         }
  49.  
  50.         public static void PrintDFS(string dirName)
  51.         {
  52.             DirectoryInfo dir = new DirectoryInfo(dirName);
  53.             Stack<DirectoryInfo> visited = new Stack<DirectoryInfo>();
  54.             visited.Push(dir);
  55.             while (visited.Count != 0)
  56.             {
  57.                 DirectoryInfo current = visited.Pop();
  58.                 Console.WriteLine(current.FullName);
  59.                 FileInfo[] files = current.GetFiles();
  60.                 foreach (var item in files)
  61.                 {
  62.                     Console.WriteLine(item.FullName);
  63.                 }
  64.                 DirectoryInfo[] children = current.GetDirectories();
  65.                 foreach (DirectoryInfo child in children)
  66.                 {
  67.                     visited.Push(child);
  68.                 }
  69.             }
  70.         }
  71.  
  72.         public static void Main()
  73.         {
  74.             /* DirectoryInfo di = new DirectoryInfo("C:\\");
  75.              Console.WriteLine(di.FullName);
  76.              DirectoryInfo[] dirs = di.GetDirectories();
  77.              foreach (var item in dirs)
  78.              {
  79.                  Console.WriteLine(item.FullName);
  80.              }
  81.              FileInfo[] files = di.GetFiles();
  82.              foreach (var item in files)
  83.              {
  84.                  Console.WriteLine(item.FullName);
  85.              }*/
  86.             Console.WriteLine("DFS:");
  87.             PrintDFS(@"C:\Users\vnachev\MyDir");
  88.             Console.WriteLine("BFS:");
  89.             PrintBFS(@"C:\Users\vnachev\MyDir");
  90.         }
  91.     }
  92. }
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement