增加了异常处理和日志记录功能。
parent
011b9fd749
commit
696e8344a8
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue