how to get all files from folder and subfolders in c# code example

Example: how to get all files from folder and subfolders in c#

private IEnumerable<string> GetAllFiles(string path, string searchPattern)
  {
            return Directory.EnumerateFiles(path, searchPattern).Union(
                Directory.EnumerateDirectories(path).SelectMany(d =>
                {
                    try
                    {
                        return GetAllFiles(d, searchPattern);
                    }
                    catch (Exception)
                    {
                        return Enumerable.Empty<string>();
                    }
                }));
 }

//or special for c# and .cs files
        /*private List<string> GetAllCsFilesFromDirectory(string directory, string searchPattern)
        {
			List<string> lstFilesFound = new List<string>();
            try
            {
                foreach (string path in Directory.GetDirectories(directory))
                {
                    foreach (string item in Directory.GetFiles(path, CsharpFileExtension, SearchOption.AllDirectories))
                    {
                        lstFilesFound.Add(item);
                    }

                    GetAllCsFilesFromDirectory(path, searchPattern);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return lstFilesFound;
        }*/