From 4d0d77bd62b179e1179961f9d742f84968a7f15b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 27 Aug 2020 18:26:38 +0300 Subject: [PATCH] Append options for PeriodicFileSystemWatcher --- .../Services/FileSystem/PeriodicFileSystemWatcher.cs | 10 +++++++--- ZeroLevel/ZeroLevel.csproj | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs b/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs index 0c824e8..227746b 100644 --- a/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs +++ b/ZeroLevel/Services/FileSystem/PeriodicFileSystemWatcher.cs @@ -18,9 +18,12 @@ namespace ZeroLevel.Services.FileSystem public event Action OnCompleteMovingFilesToTemporary = delegate { }; private readonly bool _autoRemoveTempFileAfterCallback = false; + private readonly bool _useSubdirectories = false; - public PeriodicFileSystemWatcher(TimeSpan period, string watch_folder, string temp_folder, Action callback, bool removeTempFileAfterCallback = false) - { + public PeriodicFileSystemWatcher(TimeSpan period, string watch_folder, string temp_folder, Action callback + , bool removeTempFileAfterCallback = false + , bool useSubdirectories = false) + { if (string.IsNullOrWhiteSpace(watch_folder)) { throw new ArgumentNullException(nameof(watch_folder)); @@ -29,6 +32,7 @@ namespace ZeroLevel.Services.FileSystem { throw new ArgumentNullException(nameof(callback)); } + _useSubdirectories = useSubdirectories; _autoRemoveTempFileAfterCallback = removeTempFileAfterCallback; _callback = callback; _sourceFolder = watch_folder; @@ -168,7 +172,7 @@ namespace ZeroLevel.Services.FileSystem /// private string[] GetFilesFromSource() { - string[] files = Directory.GetFiles(_sourceFolder, "*.*", SearchOption.TopDirectoryOnly); + string[] files = Directory.GetFiles(_sourceFolder, "*.*", _useSubdirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); Array.Sort(files, FileNameSortCompare); return files; } diff --git a/ZeroLevel/ZeroLevel.csproj b/ZeroLevel/ZeroLevel.csproj index 6ad37c2..ae7a144 100644 --- a/ZeroLevel/ZeroLevel.csproj +++ b/ZeroLevel/ZeroLevel.csproj @@ -6,16 +6,16 @@ ogoun ogoun - 3.3.4.3 - Refactoring + 3.3.4.4 + Additional options for PeriodicFileSystemWatcher https://github.com/ogoun/Zero/wiki Copyright Ogoun 2020 https://github.com/ogoun/Zero GitHub - 3.3.4.3 - 3.3.4.3 + 3.3.4.4 + 3.3.4.4 AnyCPU;x64 zero.png