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