Есть скрипт на удаление файлов, но он почему то не отрабатывает маску XX и удаляет все файлы.
А необходимо удалить все файлы в директории и оставить только те в которых в имени присутствует XX
DirectoryInfo dir = new DirectoryInfo(config.localPath);
string[] deleteFilesgz = Directory.GetFiles(dir.FullName, "*.gz");
foreach (string file in deleteFilesgz)
{
if (file != "*XX*")
{
File.Delete(file);
}
}
(file != "*XX*")
Это не маска. Вы сравниваете строки. Соответственно удаляются все, т.к. среди них нет файла с именем *XX*, которого в принципе быть не может.
Вам надо String.Contains использовать.
DirectoryInfo dir = new DirectoryInfo(config.localPath);
foreach (FileInfo file in dir.GetFiles("*.gz"))
{
if (file.Name.Contains("XX"))
{
Logger.log("Оставленные XX " + file);
}
else
{
File.Delete(file.FullName);
}
}