file-watcher/Helpers/HelperWaferCounter.cs
Mike Phares 4e6504af7e Switch multilevel app settings
Removed gpcl6win64 and LincPDFC just from proj file

Removed package.json to clean out publish directory
2025-03-05 16:50:02 -07:00

43 lines
1.8 KiB
C#

using File_Watcher.Models;
namespace File_Watcher.Helpers;
internal static partial class HelperWaferCounter
{
internal static bool MoveFile(AppSettings appSettings, ILogger<Worker> logger)
{
string[] files;
string checkFile;
FileInfo fileInfo;
string checkDirectory;
string[] directories = Directory.GetDirectories(appSettings.FileWatcherConfiguration.WatchDirectory, "*", SearchOption.TopDirectoryOnly);
foreach (string directory in directories)
{
checkDirectory = !appSettings.WaferCounterConfiguration.MatchPath ? appSettings.WaferCounterConfiguration.Destination : Path.Combine(appSettings.WaferCounterConfiguration.Destination, Path.GetFileName(directory));
try
{
if (!Directory.Exists(checkDirectory))
_ = Directory.CreateDirectory(checkDirectory);
files = Directory.GetFiles(directory, "*", SearchOption.TopDirectoryOnly);
foreach (string file in files)
{
fileInfo = new(file);
if (new TimeSpan(DateTime.Now.Ticks - fileInfo.LastWriteTime.Ticks).TotalMilliseconds < appSettings.FileWatcherConfiguration.MillisecondsDelay)
continue;
checkFile = Path.Combine(checkDirectory, Path.GetFileName(file));
if (File.Exists(checkFile))
continue;
try
{ File.Move(file, checkFile); }
catch (Exception ex)
{ logger.LogError(ex, "Inner loop error!"); }
}
}
catch (Exception ex)
{ logger.LogError(ex, "Loop error!"); }
}
return true;
}
}