Mega Code Archive

 
Categories / C# / File Stream
 

Find all files in a directory, and all files within every nested directory

// Copyright (c) 2010 // by http://openlightgroup.net/ using System; using System.Data; using System.Linq; using System.Web; using System.Xml.Linq; using System.Net.Mail; using System.Text; using System.Collections.Generic; using System.IO; using System.Web.Security; namespace SilverlightDebateForum {     public class Utility     {         #region GetAllFileNames         /// <summary>         /// Find all files in a directory, and all files within every nested         /// directory.         /// from: http://dotnetperls.com/Content/Recursively-Find-Files.aspx         /// </summary>         /// <param name="baseDir">The starting directory you want to use.</param>         /// <returns>A string array containing all the file names.</returns>         public static string[] GetAllFileNames(string baseDir)         {             // Store results in the file results list.             List<string> fileResults = new List<string>();             // Store a stack of our directories.             Stack<string> directoryStack = new Stack<string>();             directoryStack.Push(baseDir);             // While there are directories to process and we don't have too many results             while (directoryStack.Count > 0 && fileResults.Count < 1000)             {                 string currentDir = directoryStack.Pop();                 // Add all files at this directory.                 foreach (string fileName in Directory.GetFiles(currentDir, "*.*"))                 {                     fileResults.Add(fileName);                 }                 // Add all directories at this directory.                 foreach (string directoryName in Directory.GetDirectories(currentDir))                 {                     directoryStack.Push(directoryName);                 }             }             return fileResults.ToArray();         }         #endregion     } }