private void _archiveCopy(Media fromMedia, Media toMedia, bool deleteAfterSuccess, bool toTop) { if (fromMedia.MediaGuid == toMedia.MediaGuid && fromMedia.MediaFileEqual(toMedia)) { if (deleteAfterSuccess) FileManager.Queue(new FileOperation { Kind = TFileOperationKind.Delete, SourceMedia = fromMedia, SuccessCallback = GetVolumeInfo}, toTop); } else { if (!Directory.Exists(Path.GetDirectoryName(toMedia.FullPath))) Directory.CreateDirectory(Path.GetDirectoryName(toMedia.FullPath)); FileManager.Queue(new FileOperation { Kind = deleteAfterSuccess ? TFileOperationKind.Move : TFileOperationKind.Copy, SourceMedia = fromMedia, DestMedia = toMedia, SuccessCallback = GetVolumeInfo }, toTop); } }