Исключать определенные расширения файлов при получении файлов из каталога

Как исключить определенный тип файла при получении файлов из каталога?

Я пытался

var files = Directory.GetFiles(jobDir); 

Но кажется, что эта функция может выбирать только типы файлов, которые вы хотите включить, а не исключать.

Вы должны фильтровать эти файлы самостоятельно, вы можете написать что-то вроде этого:

  var files = Directory.GetFiles(jobDir).Where(name => !name.EndsWith(".xml")); 

Вы можете попробовать что-то вроде этого:

  var allFiles = Directory.GetFiles(@"C:\Path\", ""); var filesToExclude = Directory.GetFiles(@"C:\Path\", "*.txt"); var wantedFiles = allFiles.Except(filesToExclude); 

Я думаю, вы можете использовать lambda-выражение

 var files = Array.FindAll(Directory.GetFiles(jobDir), x => !x.EndWith(".myext")) 

Я знаю, это старая просьба, но обо мне это всегда важно.

если вы хотите исключить список расширений файлов: (на основе https://stackoverflow.com/a/19961761/1970301 )

 var exts = new[] { ".mp3", ".jpg" }; public IEnumerable FilterFiles(string path, params string[] exts) { return Directory .GetFiles(path, SearchOption.AllDirectories) .Where(file => !exts.Any(x => file.Extension.EndsWith(x, StringComparison.OrdinalIgnoreCase))); } 

Вы можете попробовать это,

 var directoryInfo = new DirectoryInfo("C:\YourPath"); var filesInfo = directoryInfo.GetFiles().Where(x => x.Extension != ".pdb"); 

Afaik нет способа указать шаблоны исключения. Вы должны сделать это вручную, например:

 string[] files = Directory.GetFiles(myDir); foreach(string fileName in files) { DoSomething(fileName); } 

Это моя версия ответов, которые я прочитал выше.

 List fileInfoList = ((DirectoryInfo)new DirectoryInfo(myPath)).GetFiles(fileNameOnly + "*").Where(x => !x.Name.EndsWith(".pdf")).ToList(); 

Я наткнулся на это, пытаясь найти способ сделать это, когда исключение может использовать правила шаблона поиска, а не только логику типа EndWith.

например, спецификатор шаблона шаблона поиска соответствует:

  • * (звездочка) Ноль или более символов в этом положении.
  • ? (знак вопроса) Нулевой или один символ в этом положении.

Это можно было бы использовать для вышеизложенного следующим образом.

 string dir = @"C:\Temp"; var items = Directory.GetFiles(dir, "*.*").Except(Directory.GetFiles(dir, "*.xml")); 

Или исключить элементы, которые в противном случае были бы включены.

 string dir = @"C:\Temp"; var items = Directory.GetFiles(dir, "*.txt").Except(Directory.GetFiles(dir, "*HOLD*.txt")); 

я использовал это

Directory.GetFiles(PATH, "*.dll"))

и PATH:

public static string _PATH = Path.GetDirectoryName (Assembly.GetExecutingAssembly (). Location);

 string[] filesToDelete = Directory.GetFiles(@"C:\Temp", "*.der"); foreach (string fileName in filesToDelete) { File.Delete(fileName); } 
  • получение типа T из IEnumerable
  • std :: queue iteration
  • C / C ++: арифметика указателей
  • Поместите элемент управления WPF в форму Windows Forms
  • Есть ли способ проверить, имеет ли class C ++ конструктор по умолчанию (кроме атрибутов типа, предоставляемого компилятором)?
  • Как я могу развернуть приложение .NET, использующее ODAC, без установки всего компонента пользователю?
  • Почему компиляторы позволяют строковым литералам не быть const?
  • Не удалось загрузить файл или сборку «System.Net.Http.Formatting» или одну из его зависимостей. Система не может найти указанный путь
  • Каков наилучший способ вернуть случайную строку в текстовый файл с помощью C?
  • что означает __declspec (dllimport)?
  • Ошибка OpenCV imread (filename) в режиме отладки при использовании библиотек выпуска
  • Interesting Posts

    AlertDialog с пользовательским представлением: изменение размера, чтобы обернуть содержимое представления

    Как лучше всего настроить Swing GUI?

    Executors.newCachedThreadPool () по сравнению с Executors.newFixedThreadPool ()

    init-param и context-param

    Проблема большого набора данных EPPlus с отсутствием памяти

    Xcode: удалить горячую клавишу

    Есть ли смысл использовать программное обеспечение для отслеживания кражи, такое как Prey на моем ноутбуке, если у вас есть безопасность входа?

    Переменная classа, определенная в @implementation, а не @interface?

    Windows не смогла завершить настройку системы после обобщенного sysprep

    Java: как мне получить литерал classа из общего типа?

    Скрипт Powershell из ярлыка для изменения рабочего стола

    AppFresh-подобное программное обеспечение для Windows?

    Где найти номер строки в редакторе Xcode?

    Touchpad и Trackpoint не работают после Windows 10 64 бит Январь 2017 Обновление

    Как я могу развернуть узловые модули в приложении Meteor на meteor.com?

    Давайте будем гением компьютера.