diff --git a/SQLBackupToCOS/BackupService.cs b/SQLBackupToCOS/BackupService.cs index 58995ef..04a6f91 100644 --- a/SQLBackupToCOS/BackupService.cs +++ b/SQLBackupToCOS/BackupService.cs @@ -185,6 +185,7 @@ public class BackupService(ILogger logger, IConfiguration config, Directory.Delete(dumpDir, recursive: true); _logger.LogInformation("Backup completed: {File}", finalDump); + await _outputService.CleanOutputDirFiles(); await _outputService.AddFileToOutput(finalDump); //await _cosService.AddFileToCOS(finalDump); } diff --git a/SQLBackupToCOS/OutputService.cs b/SQLBackupToCOS/OutputService.cs index f3f4e9c..e6c734f 100644 --- a/SQLBackupToCOS/OutputService.cs +++ b/SQLBackupToCOS/OutputService.cs @@ -48,5 +48,38 @@ namespace SQLBackupToCOS throw; } } + public async Task CleanOutputDirFiles() + { + try + { + string outputPath = _config.GetValue("outputDir") ?? "/output"; + if (Directory.Exists(outputPath)) + { + var files = Directory.GetFiles(outputPath); + foreach (var file in files) + { + _logger.LogInformation($"Deleting file: {file}"); + try + { + File.Delete(file); + } + catch (Exception ex) + { + _logger.LogError(ex, $"Failed to delete file: {file}"); + } + } + _logger.LogInformation("All files in output directory have been deleted."); + } + else + { + _logger.LogWarning($"Output directory does not exist: {outputPath}"); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to clean output directory"); + throw; + } + } } }