按拍摄日期将照片分类到文件夹中
本文关键字:分类 文件夹 照片 日期 | 更新日期: 2023-09-27 18:04:54
我想制作一个软件,按实际拍摄的日期将图片分组到文件夹中。这些照片将按照拍摄年份分类到文件夹中,比如:
文件夹:2000
文件夹内:2000年拍摄的一些照片。
我该怎么做呢?
要获得照片实际拍摄的日期,您需要查看Exif数据。
当您使用Image.FromFile()
时,该数据将自动读入PropertyItems
数组。然后,您可以使用另一个引用(比如这个)来获得日期信息的正确代码。您还可以使用这个库来简化代码的阅读。
并不是所有的图像都有Exif数据,所以你可能想把David的回答作为备用。
一旦你有了相关的日期信息,你可以使用Directory.Create(year)
和File.Move(oldPath, newPath)
来组织文件。
List<string> imageFiles= ... // Here you get the image path
Dictionary<int, List<string>> groupedPaths= ... //output dict
foreach(string str in imageFiles)
{
FileInfo fi=new FileInfo(str);
int year = fi.CreationTime.Year;
if(!groupedPath.ContainsKey(year))
{
var list=new List<string>();
list.Add(year, string);
groupedPaths.Add(year, list);
}
else
{
groupedPaths[year].Add(year, str);
}
//Now you can process with foreach or use LINQ to group your images
foreach(KeyValuePair<int, string> pair in groupedPaths)
{
...
}