diff --git a/Rename/Rename.cs b/Rename/Rename.cs index e8e3e40..369c779 100644 --- a/Rename/Rename.cs +++ b/Rename/Rename.cs @@ -235,6 +235,8 @@ public partial class Rename : IRename, IDisposable } if (renameConfiguration.InPlace || renameConfiguration.InPlaceWithOriginalName) NonParallelismAndInPlace(renameConfiguration, ids, exifDirectory, fileInfo, filePath, fastForwardMovingPictureExpertsGroupUsed, new(sidecarFiles)); + if (!fastForwardMovingPictureExpertsGroupUsed && renameConfiguration.InPlaceMoveDirectory && renameConfiguration.ValidVideoFormatExtensions.Contains(filePath.ExtensionLowered)) + fastForwardMovingPictureExpertsGroupUsed = true; results.Add(new(exifDirectory, fastForwardMovingPictureExpertsGroupUsed, fileInfo, filePath, new(sidecarFiles))); } } @@ -281,7 +283,12 @@ public partial class Rename : IRename, IDisposable if (_ProgressBar.CurrentTick != recordACollection.Count) throw new NotSupportedException(); foreach ((bool fastForwardMovingPictureExpertsGroupUsed, FilePath filePath, FileInfo fileInfo, ExifDirectory exifDirectory, ReadOnlyCollection sidecarFiles) in collection) - recordACollection.Add(new(exifDirectory, fastForwardMovingPictureExpertsGroupUsed, fileInfo, filePath, sidecarFiles)); + { + if (fastForwardMovingPictureExpertsGroupUsed || !renameConfiguration.InPlaceMoveDirectory || !renameConfiguration.ValidVideoFormatExtensions.Contains(filePath.ExtensionLowered)) + recordACollection.Add(new(exifDirectory, fastForwardMovingPictureExpertsGroupUsed, fileInfo, filePath, sidecarFiles)); + else + recordACollection.Add(new(exifDirectory, FastForwardMovingPictureExpertsGroupUsed: true, fileInfo, filePath, sidecarFiles)); + } } _ProgressBar.Dispose(); results = GetRecordBCollection(renameConfiguration.MetadataConfiguration, recordACollection); @@ -471,7 +478,10 @@ public partial class Rename : IRename, IDisposable { if (File.Exists(toDo.File)) File.Delete(toDo.File); - File.Move(toDo.FilePath.FullName, toDo.File); + try + { File.Move(toDo.FilePath.FullName, toDo.File); } + catch (Exception) + { continue; } } else if (toDo.Directory is null) throw new NotSupportedException(); @@ -527,6 +537,7 @@ public partial class Rename : IRename, IDisposable ReadOnlyCollection ids = GetIds(appSettings.RenameConfiguration); RenameConfiguration renameConfiguration = appSettings.RenameConfiguration; MetadataConfiguration metadataConfiguration = renameConfiguration.MetadataConfiguration; + _ = IPath.DeleteEmptyDirectories(metadataConfiguration.ResultConfiguration.RootDirectory); DirectoryInfo directoryInfo = new(Path.GetFullPath(metadataConfiguration.ResultConfiguration.RootDirectory)); logger?.LogInformation("{Ticks} {RootDirectory}", ticks, directoryInfo.FullName); ReadOnlyCollection recordBCollection = GetRecordBCollection(logger, appSettings, rename, ids, directoryInfo);