fix issue when someone had penumbra folder at the root of their drive

This commit is contained in:
rootdarkarchon
2023-09-20 12:15:38 +02:00
parent afb7800d20
commit d7a4cc1ea1

View File

@@ -91,7 +91,17 @@ public sealed class PeriodicFileScanner : DisposableMediatorSubscriberBase
await Task.Delay(250, token).ConfigureAwait(false);
}
Thread scanThread = new(() => _performanceCollector.LogPerformance(this, "PeriodicFileScan", () => PeriodicFileScan(isForcedFromExternal, token)))
Thread scanThread = new(() =>
{
try
{
_performanceCollector.LogPerformance(this, "PeriodicFileScan", () => PeriodicFileScan(isForcedFromExternal, token));
}
catch (Exception ex)
{
Logger.LogError(ex, "Error during Periodic File Scan");
}
})
{
Priority = ThreadPriority.Lowest,
IsBackground = true
@@ -207,6 +217,8 @@ public sealed class PeriodicFileScanner : DisposableMediatorSubscriberBase
Dictionary<string, string[]> penumbraFiles = new(StringComparer.Ordinal);
foreach (var folder in Directory.EnumerateDirectories(penumbraDir!))
{
try
{
penumbraFiles[folder] = Directory.GetFiles(folder, "*.*", SearchOption.AllDirectories)
.AsParallel()
@@ -214,6 +226,11 @@ public sealed class PeriodicFileScanner : DisposableMediatorSubscriberBase
&& !f.Contains(@"\bg\", StringComparison.OrdinalIgnoreCase)
&& !f.Contains(@"\bgcommon\", StringComparison.OrdinalIgnoreCase)
&& !f.Contains(@"\ui\", StringComparison.OrdinalIgnoreCase)).ToArray();
}
catch (Exception ex)
{
Logger.LogWarning(ex, "Could not enumerate path {path}", folder);
}
Thread.Sleep(50);
if (ct.IsCancellationRequested) return;
}