首页 > 解决方案 > 重复文件显示在 WPF 文件夹的列表框中

问题描述

我有一个问题,如果我从文件夹(gedaan)中获取我的文件,它会重复并将文件夹中的文件放在我的列表框 agian 中。

我只是想让它检查我的文件夹中是否有新文件

这是我从文件夹中获取文件的代码

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

标签: c#wpf

解决方案


这是因为您要再次添加所有文件。

您必须在再次添加所有文件之前清除您的收藏:

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);
}

另一种方法是将 type 更改为LB2.Itemstype HashSet<string>HashSet<T>is 是一个不包含重复元素的集合。在此处阅读更多信息:https ://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1


推荐阅读