updated nice progress bars

This commit is contained in:
Holger Börchers 2020-10-31 21:56:27 +01:00
parent 02d757f35e
commit 01b2c0e5e7

View File

@ -55,11 +55,9 @@ namespace PhotoRenamer
{
var directories = ImageMetadataReader.ReadMetadata(file);
var dateTime = GetDateTimeFromExif(directories) ?? GetDateTimeFromMp4(directories);
if (!(dateTime is null))
{
var folder = CreateFolder(dateTime.GetValueOrDefault());
CopyFile(folder, file, progressBar);
}
if (dateTime is null) return;
var folder = CreateFolder(dateTime.GetValueOrDefault());
CopyFile(folder, file, progressBar);
}
catch (ImageProcessingException)
{
@ -83,13 +81,16 @@ namespace PhotoRenamer
using var child = progressBar.Spawn(100, destination.FullName, _childOptions);
using var client = new WebClient();
client.DownloadProgressChanged += (o, args) => child.Tick(args.ProgressPercentage);
void OnClientOnDownloadProgressChanged(object o, DownloadProgressChangedEventArgs args) => child.Tick(args.ProgressPercentage);
client.DownloadProgressChanged += OnClientOnDownloadProgressChanged;
client.DownloadFileAsync(new Uri(source.FullName), destination.FullName);
while (client.IsBusy)
{
Thread.Sleep(100);
}
//source.CopyTo(destination.FullName, true);
client.DownloadProgressChanged -= OnClientOnDownloadProgressChanged;
child.Tick(100);
}
@ -102,16 +103,24 @@ namespace PhotoRenamer
private static DateTime? GetDateTimeFromExif(IEnumerable<MetadataExtractor.Directory> directories)
{
DateTime dateTime = default;
return directories
.OfType<ExifSubIfdDirectory>()
.FirstOrDefault()?.GetDateTime(ExifDirectoryBase.TagDateTimeOriginal);
.OfType<ExifIfd0Directory>()
.FirstOrDefault()?
.TryGetDateTime(ExifDirectoryBase.TagDateTime, out dateTime) == true
? (DateTime?) dateTime
: null;
}
private static DateTime? GetDateTimeFromMp4(IEnumerable<MetadataExtractor.Directory> directories)
{
DateTime dateTime = default;
return directories
.OfType<QuickTimeMovieHeaderDirectory>()
.FirstOrDefault()?.GetDateTime(QuickTimeMovieHeaderDirectory.TagCreated);
.FirstOrDefault()?
.TryGetDateTime(QuickTimeMovieHeaderDirectory.TagCreated, out dateTime) == true
? (DateTime?) dateTime
: null;
}
}
}