Files
OneDriveBackupService/OneDrive/OneDriveClient.cs

27 lines
882 B
C#

using OneDriveBackupService.Models;
namespace OneDriveBackupService.OneDrive;
public sealed class OneDriveClient(ConfigData config) {
public void UploadFile(string filePath) {
Directory.CreateDirectory(config.BackupUploadRoot);
var destFileName = Path.Combine(config.BackupUploadRoot, Path.GetFileName(filePath));
File.Move(filePath, destFileName);
}
public int DeleteOldFiles() {
var directory = new DirectoryInfo(config.BackupUploadRoot);
var filesToDelete = directory.EnumerateFiles()
.Where(f => f.Name.StartsWith("backup_") && f.Name.EndsWith(".tar.gz"))
.OrderByDescending(f => f.CreationTimeUtc)
.Skip(config.KeepLast)
.ToArray();
foreach (var file in filesToDelete) {
file.Delete();
}
return filesToDelete.Length;
}
}