gpt4 book ai didi

C# FileInfo - 查找重复文件

转载 作者:太空狗 更新时间:2023-10-30 00:20:48 24 4
gpt4 key购买 nike

我有一个包含约 200.000 个文件条目的 FileInfo 数组。我需要找到具有相同文件名的所有文件。我需要每个重复文件的目录名和文件名作为结果,因为我想以后重命名它们。

我已经尝试过的:

  • 用 2 个 For“循环”将每个条目与整个列表进行比较//坏主意,这需要数小时甚至数天 ^^
  • 尝试使用 Linq 排序//因为我没有使用 Linq 之前我很难写出正确的语句,也许有人可以帮助我 :)

最佳答案

听起来应该这样做:

var duplicateNames = files.GroupBy(file => file.Name)
.Where(group => group.Count() > 1)
.Select(group => group.Key);

现在是学习 LINQ 的非常好时机。它非常有用 - 花时间学习它(即使只是 LINQ to Objects)会很快收回成本。

编辑:好的,如果您想要每个组的原始 FileInfo,只需放下选择:

var duplicateGroups = files.GroupBy(file => file.Name)
.Where(group => group.Count() > 1);

// Replace with what you want to do
foreach (var group in duplicateGroups)
{
Console.WriteLine("Files with name {0}", group.Key);
foreach (var file in group)
{
Console.WriteLine(" {0}", file.FullName);
}
}

关于C# FileInfo - 查找重复文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9001542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com