Advertisement
sylviapsh

Traverse Windows Directories

Jun 23rd, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. namespace TraverseWindowsDirectories
  2. {
  3.     using System;
  4.     using System.Collections.Generic;
  5.     using System.IO;
  6.     using System.Text;
  7.  
  8.     /// <summary>
  9.     /// Write a program to traverse the directory C:\WINDOWS and all its subdirectories recursively and to display all files matching the mask *.exe. Use the class System.IO.Directory.
  10.     /// </summary>
  11.     public class TraverseWindowsDirectories
  12.     {
  13.         private static readonly List<string> files = new List<string>();
  14.  
  15.         public static void Main()
  16.         {
  17.             string rootDirectory = @"C:\Windows";
  18.             string fileExtension = "*.exe";
  19.  
  20.             TraverseDirectory(rootDirectory, fileExtension);
  21.  
  22.             Console.WriteLine(PrintFiles(files));
  23.         }
  24.  
  25.         private static void TraverseDirectory(string currentPath, string fileExtension)
  26.         {
  27.             string[] currentDirectoryFiles = Directory.GetFiles(currentPath, fileExtension);
  28.             files.AddRange(currentDirectoryFiles);
  29.  
  30.             string[] currentDirectorySubDirectories = Directory.GetDirectories(currentPath);
  31.             try
  32.             {
  33.                 foreach (var directory in currentDirectorySubDirectories)
  34.                 {
  35.                     TraverseDirectory(directory, fileExtension);
  36.                 }
  37.             }
  38.             catch (System.UnauthorizedAccessException excpt)
  39.             {
  40.                 Console.WriteLine(excpt.Message);
  41.             }
  42.         }
  43.  
  44.         private static string PrintFiles(List<string> files)
  45.         {
  46.             StringBuilder output = new StringBuilder();
  47.  
  48.             for (int i = 0; i < files.Count; i++)
  49.             {
  50.                 output.AppendLine(files[i]);
  51.             }
  52.            
  53.             return output.ToString();
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement