mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-26 12:08:37 +08:00
34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using System;
|
|
using mRemoteNG.App;
|
|
|
|
namespace mRemoteNG.Config.DataProviders
|
|
{
|
|
public class FileDataProviderWithRollingBackup : FileDataProviderWithBackup
|
|
{
|
|
public FileDataProviderWithRollingBackup(string filePath) : base(filePath)
|
|
{
|
|
}
|
|
|
|
protected override void CreateBackup()
|
|
{
|
|
CreateRollingBackup();
|
|
base.CreateBackup();
|
|
}
|
|
|
|
protected virtual void CreateRollingBackup()
|
|
{
|
|
var timeStamp = $"{DateTime.Now:yyyyMMdd-HHmmss-ffff}";
|
|
var normalBackup = new FileDataProviderWithBackup(FilePath + BackupFileSuffix);
|
|
var normalBackupWithoutSuffix = normalBackup.FilePath.Replace(BackupFileSuffix, "");
|
|
try
|
|
{
|
|
normalBackup.MoveTo(normalBackupWithoutSuffix + timeStamp + BackupFileSuffix);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Runtime.MessageCollector.AddExceptionStackTrace($"Failed to create rolling backup of file {FilePath}", ex);
|
|
throw;
|
|
}
|
|
}
|
|
}
|
|
} |