Есть такая проблема. Имеется файл .dat со списком файлов которые должны находится в папке. И сама папка с файлами. Как написать программу которая будет проверять если файл не записан в .dat документе и удалять его?
Ну предположим у нас есть некий files.dat, внутри которого всего две строки:
File.txt
Image.png
Первым делом нам надо его считать:
var list = File.ReadAllLines("files.dat");
Это выдаст нам массив строк (string[]), где каждый объект будет = 1 строке из файла.
Теперь удаляем из директории все, что не содержится в этом массиве:
foreach (var file in Directory.GetFiles("Dir"))
{
var info = new FileInfo(file);
if (!list.Contains(info.Name))
File.Delete(file);
}
FileInfo здесь для того, что бы отделить путь и получить чисто название с расширением, способов это сделать уйма, я просто ленив.. Но вообще по хорошему лучше сверять не просто файл, а полный путь!
Я создал тестовые файлы для примера, до запуска в папке находится следующее:
После запуска имеем следующее:
Как видим, все лишнее успешно удалилось.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей