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

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() private DateTime? GetShotDate()
{ {
DateTime? shotDate = null; DateTime? shotDate = null;
IEnumerable<MetadataExtractor.Directory> directories = ImageMetadataReader.ReadMetadata(FullFilePath); try
Print(directories);
foreach (var directory in directories)
{ {
if (directory is ExifSubIfdDirectory) IEnumerable<MetadataExtractor.Directory> directories = ImageMetadataReader.ReadMetadata(FullFilePath);
Print(directories);
foreach (var directory in directories)
{ {
var subIfdDirectory = directory as ExifSubIfdDirectory; if (directory is ExifSubIfdDirectory)
if (subIfdDirectory.ContainsTag(ExifDirectoryBase.TagDateTimeOriginal))
{ {
shotDate = subIfdDirectory.GetDateTime(ExifDirectoryBase.TagDateTimeOriginal); var subIfdDirectory = directory as ExifSubIfdDirectory;
break; // Exit the loop since we found the shot date 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); var subDirectory = directory as QuickTimeMovieHeaderDirectory;
break; // Exit the loop since we found the shot date if (subDirectory.ContainsTag(QuickTimeMovieHeaderDirectory.TagCreated))
} {
} shotDate = subDirectory.GetDateTime(QuickTimeMovieHeaderDirectory.TagCreated);
if (directory is QuickTimeMovieHeaderDirectory) 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; return shotDate;
} }

View File

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