重复的文件显示在文件夹WPF的列表框中

时间:2018-10-02 10:20:46

标签: c# wpf

我有一个问题,如果我从文件夹(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 :(得分:0)

这是因为您要重新添加所有文件。

您必须先清除您的收藏集,然后才能再次添加所有文件:

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