AoC.Questionnaire.Extensions.RecursiveFileSearch C# (CSharp) Method

RecursiveFileSearch() public static method

public static RecursiveFileSearch ( this dir ) : IEnumerable
dir this
return IEnumerable
        public static IEnumerable<FileInfo> RecursiveFileSearch(this DirectoryInfo dir)
        {
            Queue<DirectoryInfo> q = new Queue<DirectoryInfo>();
            q.Enqueue(dir);

            while (q.Count > 0)
            {
                var directory = q.Dequeue();
                foreach (var file in directory.GetFiles())
                {
                    yield return file;
                }

                foreach (var d in directory.GetDirectories())
                {
                    q.Enqueue(d);
                }
            }
        }