如何以编程方式在Windows文件夹中使用GroupBy和GroupView?

时间:2017-07-23 04:42:46

标签: c# winforms

我在Windows中有很多文件夹。在每个文件夹中都有Image / Videos / Excel / Word / PS / Cad ..等。

我以编程方式访问每个文件,但是当我每次选择GroupBy="Date Access"GroupView="Details"时选择文件夹时,请添加column="date modified"。我找不到在我的文件夹中保存自定义文件夹设置的方法。

c#中有可能吗?我使用的是Windows 10。

1 个答案:

答案 0 :(得分:0)

是的,C#可以按date-accesseddate-modified对文件进行分组。 在下面的示例中,我将向您展示如何使用creation-date年份进行分组。

首先你需要获取文件信息:

// get file-infos for all files in D:\Daten
string[] files = Directory.GetFiles(@"D:\Daten");

// and convert them to file-info-objects
List<FileInfo> filesWithFileInfo = files.Select(it => new FileInfo(it)).ToList();

然后,您可以使用Linq的GroupBy按创建日期年份对它们进行分组:

List<IGrouping<int, FileInfo>> filesGroupedByYear = filesWithFileInfo.GroupBy(it => it.CreationTime.Year).ToList();

这将枚举所有组,然后是每组中的文件:

foreach(IGrouping<int,FileInfo> filesOfOneYear in filesGroupedByYear)
{
  Console.WriteLine($"{filesOfOneYear.Count()} Files of year {filesOfOneYear.Key}:");
  foreach(FileInfo file in filesOfOneYear.ToList())
  {
    Console.WriteLine($"{file.Name}");
  }
}