diff --git a/src/LibraryManager.Contracts/FileHelpers.cs b/src/LibraryManager.Contracts/FileHelpers.cs index 4d5a19de..818346fd 100644 --- a/src/LibraryManager.Contracts/FileHelpers.cs +++ b/src/LibraryManager.Contracts/FileHelpers.cs @@ -141,19 +141,23 @@ public static Task ReadFileAsStreamAsync(string fileName, CancellationTo /// A boolean indicating whether the file was copied successfully public static async Task CopyFileAsync(string sourceFile, string destinationFile, ILogger logger, CancellationToken cancellationToken) { - try + //Sometimes it flaky. Let's retry + for (int i=0; i<2;i++) { - using FileStream sourceStream = File.Open(sourceFile, FileMode.Open, FileAccess.Read); + try + { + using FileStream sourceStream = File.Open(sourceFile, FileMode.Open, FileAccess.Read); - await WriteToFileAsync(destinationFile, sourceStream, cancellationToken); + await WriteToFileAsync(destinationFile, sourceStream, cancellationToken); - return true; - } - catch (Exception exception) - { - logger.Log($"Error during copying file {exception}", LogLevel.Error); - return false; + return true; + } + catch (Exception exception) + { + logger.Log($"Error during copying file {exception}", LogLevel.Error); + } } + return false; } ///