Расширение файлов - как удалять ненужное

soprano

Client
Регистрация
25.08.2011
Сообщения
866
Благодарностей
948
Баллы
93
Из папки с кучей файлов удаляю все, кроме тех (картинок), где есть нужное мне расширение, вот таким кодом
C#:
var directoryPath = Path.Combine(project.Directory, "TestDirectory");
var imgList = Directory.GetFiles(directoryPath).Where(f => !Path.GetExtension(f).Equals(".jpg").Equals(".jpeg").Equals(".png")).ToList();
if(imgList.Count > 0)
{
    foreach(var filePath in imgList)
    {
        File.Delete(filePath);
    }
}
Но попадаются файлы без расширения, и на них показывает ошибку или виснет.
Что нужно добавить в мой код, чтобы удалялись файлы без расширения?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 246
Благодарностей
1 820
Баллы
113
Попробуйте такой код:
C#:
var directoryPath = Path.Combine(project.Directory, "TestDirectory");

// Массив допустимых расширений файлов.
var extensions = new [] {".jpg", ".jpeg", ".png"};

var notImages = Directory.GetFiles(directoryPath).Where(f => !extensions.Contains(Path.GetExtension(f))).ToList();
if(notImages.Count > 0)
{
    foreach(var filePath in notImages)
    {
        File.Delete(filePath);
    }
}
 
  • Спасибо
Реакции: Yuriy Zymlex

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
В два захода попробуйте. Сначала удаляете файлы без расширений, потом уже ваш код.
C#:
string[] files = Directory.GetFiles(directoryPath).Where(s => String.IsNullOrEmpty(Path.GetExtension(s)));

foreach (string f in files) {
   System.IO.File.Delete(f);
}
 
  • Спасибо
Реакции: soprano

soprano

Client
Регистрация
25.08.2011
Сообщения
866
Благодарностей
948
Баллы
93
Ёпрст. Конечно, IsNullOrEmpty.
Приятно учиться у лучших.
.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)