Skip to content

Commit 95926da

Browse files
Merge pull request #9 from andreaskueffel/development
implement DeleteSourceAfterBackup
2 parents 225b00f + e446f94 commit 95926da

5 files changed

Lines changed: 16 additions & 0 deletions

File tree

FileSyncJob/FileSyncJobOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class FileSyncJobOptions : IFileSyncJobOptions
1616
public List<string> Subfolders { get; set; }
1717
public bool Recursive { get; set; } = true;
1818
public bool SyncDeleted { get; set; } = false;
19+
public bool DeleteSourceAfterBackup { get; set; } = false;
1920
public FileSyncProvider FileSyncProvider { get; set; } = FileSyncProvider.FileIO;
2021

2122
public FileSyncJobOptions()

FileSyncJob/FileSyncJobOptionsBuilder.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ public IFileSyncJobOptionsBuilderSetProperties WithSubfolder(string subfolder)
7474
jobOptions.Subfolders.Add(subfolder);
7575
return this;
7676
}
77+
public IFileSyncJobOptionsBuilderSetProperties DeleteAfterBackup(bool deleteAfterBackup)
78+
{
79+
jobOptions.DeleteSourceAfterBackup = deleteAfterBackup;
80+
return this;
81+
}
7782
public IFileSyncJobOptionsBuilderSetProperties WithInterval(TimeSpan interval)
7883
{
7984
jobOptions.Interval = interval;
@@ -124,6 +129,7 @@ public interface IFileSyncJobOptionsBuilderSetProperties : IFileSyncJobOptionsBu
124129
IFileSyncJobOptionsBuilderSetProperties WithCredentials(NetworkCredential networkCredential);
125130
IFileSyncJobOptionsBuilderSetProperties WithSearchPattern(string searchPattern);
126131
IFileSyncJobOptionsBuilderSetProperties WithSubfolder(string subfolder);
132+
IFileSyncJobOptionsBuilderSetProperties DeleteAfterBackup(bool deleteAfterBackup);
127133
IFileSyncJobOptionsBuilderSetProperties WithLogger(ILogger logger);
128134
IFileSyncJobOptionsBuilderSetProperties WithLogger(Action<string> loggerAction);
129135
}

FileSyncJob/IFileSyncJobOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public interface IFileSyncJobOptions
1616
string SearchPattern { get; set; }
1717
List<string> Subfolders { get; set; }
1818
string SourcePath { get; set; }
19+
bool DeleteSourceAfterBackup { get; set; }
1920
bool SyncDeleted { get; set; }
2021
}
2122
}

SyncProviders/FileIOProvider.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ public override void SyncSourceToDest()
5555
logger.LogDebug("Copy {A}", relativeFilename);
5656
File.Copy(f.FullName, remotefile.FullName, true);
5757
copied++;
58+
if (JobOptions.DeleteSourceAfterBackup)
59+
{
60+
File.Delete(f.FullName);
61+
}
5862
}
5963
catch (Exception exc)
6064
{

SyncProviders/SmbLibProvider.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ public override void SyncSourceToDest()
9999
try
100100
{
101101
WriteFile(f.FullName, remotefile);
102+
if (JobOptions.DeleteSourceAfterBackup)
103+
{
104+
File.Delete(f.FullName);
105+
}
102106
}
103107
catch (Exception exc)
104108
{

0 commit comments

Comments
 (0)