@vladimirchelyabinskiy

Как сделать поиск на C# по директориям, с составлением списка файлов по указанным расширениям?

Добрый день, не могу разобраться как осуществить поиск на C# по директориям включая вложенные директории с указанием расширений файлов для поиска, и занесением путей этих файлов в текстовый документ.

имеется код:

static List<string> files = new List<string>();

        public static void GetAllFiles(string rootDirectory, string fileExtension, List<string> files)
        {
            string[] directories = Directory.GetDirectories(rootDirectory);

            files.AddRange(Directory.GetFiles(rootDirectory, fileExtension));

            foreach (string path in directories)
                GetAllFiles(path, fileExtension, files);
        }

        static void Main(string[] args)
        {
            GetAllFiles(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "*.txt", files);

            StreamWriter WriteErrorlog = new StreamWriter(DateTime.Now.ToString(@"MM\.dd\.yyyy") + ".log", true);

            foreach (string ListItem in files)
                WriteErrorlog.Write(ListItem + "\r\n");

            WriteErrorlog.Close();

            
            Console.ReadKey();
        }


Данный код сканирует только на наличие файлов .txt мне нужно прописать в массив другие расширения, как это сделать?
  • Вопрос задан
  • 1772 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Используйте Directory.GetFiles.
string[] fileNames = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);

Для нескольких расширений можете либо вызвать метод несколько раз, либо использовать Directory.EnumerateFiles вместе с LINQ.
string[] fileNames = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(".txt") || s.EndsWith(".jpg"));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы