增加了异常处理和日志记录功能。

master
Rui Sun 2023-10-25 23:56:36 +08:00
parent 011b9fd749
commit 696e8344a8
3 changed files with 59 additions and 20 deletions

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WechatMediaRenamer
{
public class Logger
{
internal static void LogString(string input)
{
string logPath = AppDomain.CurrentDomain.BaseDirectory + "logfile.txt"; // 日志文件路径,以应用程序所在目录为基础
try
{
using (StreamWriter writer = new StreamWriter(logPath, true))
{
writer.WriteLine(DateTime.Now.ToString() + ": " + input); // 写入当前时间和输入参数到日志文件
}
Console.WriteLine("日志已写入文件: " + logPath);
}
catch (Exception ex)
{
Console.WriteLine("写入日志时出现错误: " + ex.Message);
}
}
}
}

View File

@ -76,34 +76,41 @@ namespace WechatMediaRenamer
private DateTime? GetShotDate()
{
DateTime? shotDate = null;
IEnumerable<MetadataExtractor.Directory> directories = ImageMetadataReader.ReadMetadata(FullFilePath);
Print(directories);
foreach (var directory in directories)
try
{
if (directory is ExifSubIfdDirectory)
IEnumerable<MetadataExtractor.Directory> directories = ImageMetadataReader.ReadMetadata(FullFilePath);
Print(directories);
foreach (var directory in directories)
{
var subIfdDirectory = directory as ExifSubIfdDirectory;
if (subIfdDirectory.ContainsTag(ExifDirectoryBase.TagDateTimeOriginal))
if (directory is ExifSubIfdDirectory)
{
shotDate = subIfdDirectory.GetDateTime(ExifDirectoryBase.TagDateTimeOriginal);
break; // Exit the loop since we found the shot date
var subIfdDirectory = directory as ExifSubIfdDirectory;
if (subIfdDirectory.ContainsTag(ExifDirectoryBase.TagDateTimeOriginal))
{
shotDate = subIfdDirectory.GetDateTime(ExifDirectoryBase.TagDateTimeOriginal);
break; // Exit the loop since we found the shot date
}
if (subIfdDirectory.ContainsTag(ExifDirectoryBase.TagDateTimeDigitized))
{
shotDate = subIfdDirectory.GetDateTime(ExifDirectoryBase.TagDateTime);
break; // Exit the loop since we found the shot date
}
}
if (subIfdDirectory.ContainsTag(ExifDirectoryBase.TagDateTimeDigitized))
if (directory is QuickTimeMovieHeaderDirectory)
{
shotDate = subIfdDirectory.GetDateTime(ExifDirectoryBase.TagDateTime);
break; // Exit the loop since we found the shot date
}
}
if (directory is QuickTimeMovieHeaderDirectory)
{
var subDirectory = directory as QuickTimeMovieHeaderDirectory;
if (subDirectory.ContainsTag(QuickTimeMovieHeaderDirectory.TagCreated))
{
shotDate = subDirectory.GetDateTime(QuickTimeMovieHeaderDirectory.TagCreated);
break;
var subDirectory = directory as QuickTimeMovieHeaderDirectory;
if (subDirectory.ContainsTag(QuickTimeMovieHeaderDirectory.TagCreated))
{
shotDate = subDirectory.GetDateTime(QuickTimeMovieHeaderDirectory.TagCreated);
break;
}
}
}
}
catch (Exception ex)
{
Logger.LogString(ex.Message);
}
return shotDate;
}

View File

@ -77,6 +77,7 @@
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Logger.cs" />
<Compile Include="MediaFileRenamer.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>