【问题标题】:duplicated files show in listbox from folder WPF重复文件显示在 WPF 文件夹的列表框中
【发布时间】:2018-10-02 10:20:46
【问题描述】:

我有一个问题,如果我从文件夹 (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);
        }

【问题讨论】:

标签: c# wpf


【解决方案1】:

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

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

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&lt;string&gt; 类型。 HashSet&lt;T&gt; 是一个不包含重复元素的集合。在这里阅读更多:https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1

【讨论】:

  • 在你发帖之前我已经用我的常识做了第一个,谢谢!标记为答案
猜你喜欢
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多