27 lines
882 B
C#
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;
|
|
}
|
|
} |