【发布时间】:2025-12-21 23:50:07
【问题描述】:
我正在尝试返回目录中所有重复文件的列表。我设法从目录和子目录中返回所有文件名。我想我有允许返回重复文件的代码,但我想返回所有重复文件的列表及其到控制台的路径。我创建了一个包含文件夹、文件名和文件大小的 FileDetail 类。 我需要为重复文件创建另一个类吗? 返回找到的所有重复文件列表的最佳方法是什么?
对 C# 相对较新,并使用此任务作为学习使用目录的方法的经验
private static void ListAllDuplicateFiles()
{
string[] files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories);
List<string> duplicates = new List<string>();
List<FileDetail> fileDetails = new List<FileDetail>();
foreach (string file in files)
{
FileInfo fileInfo = new FileInfo(file);
FileDetail fileDetail = new FileDetail(fileInfo);
fileDetails.Add(fileDetail);
if (fileDetails.Select(f => f.Filename).Contains(file))
{
duplicates.Add(file);
}
}
foreach (string duplicate in duplicates)
{
List<FileDetail> duplicateFileDetails = fileDetails.Where(f => f.Filename == duplicate).ToList();
}
foreach (FileDetail fileDetail in fileDetails)
{
Console.WriteLine(fileDetail.Filename);
}
Console.ReadLine();
}
【问题讨论】:
-
很遗憾,它并没有真正回答这个问题,因为我可以在这里收集重复项,但不知道如何给他们自己的课程并将它们作为列表返回给控制台
标签: c# file directory duplicates