дублированные файлы отображаются в списке из папки WPF - PullRequest
0 голосов
/ 02 октября 2018

У меня проблема в том, что если я получаю свои файлы из папки (gedaan), она дублирует и помещает файлы из папок в мой список.

Я просто хочу проверить, есть ли новые файлы вмоя папка

это мой код для получения файлов из папки

        DirectoryInfo dinfo = new 
        DirectoryInfo(@"C:\Users\nour\Desktop\Gedaan");
        FileInfo[] Files = dinfo.GetFiles("*.DOCX");
        foreach (FileInfo file in Files)
        {
            LB2.Items.Add(file.Name);
        }

1 Ответ

0 голосов
/ 02 октября 2018

Это потому, что вы снова добавляете все файлы.

Вы должны либо очистить свою коллекцию перед повторным добавлением всех файлов:

DirectoryInfo dinfo = new 
DirectoryInfo(@"C:\Users\nour\Desktop\Gedaan");
FileInfo[] Files = dinfo.GetFiles("*.DOCX");
LB2.Items.Clear();
foreach (FileInfo file in Files)
{
    LB2.Items.Add(file.Name);
}

Или вы должны исключить дубликаты файлов:

DirectoryInfo dinfo = new 
DirectoryInfo(@"C:\Users\nour\Desktop\Gedaan");
IEnumerable<FileInfo> Files = dinfo.GetFiles("*.DOCX").Where(file => !LB2.Items.Contains(file.Name));
foreach (FileInfo file in Files)
{
    LB2.Items.Add(file.Name);
}

Другой подход заключается в изменении типа LB2.Items на тип HashSet<string>.HashSet<T> - это коллекция, которая не содержит повторяющихся элементов.Подробнее здесь: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...