From 17002fe47308d196d71d68b1d111e9eb6b23ca0d Mon Sep 17 00:00:00 2001 From: wowjf <210711173+wowjf@users.noreply.github.com> Date: Fri, 23 Oct 2026 07:04:42 +0300 Subject: [PATCH] deep log scan: skip junction folders and reparse files --- MultronWinCleaner/Processes/Scan.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/MultronWinCleaner/Processes/Scan.cs b/MultronWinCleaner/Processes/Scan.cs index 905c4b0..dd7fcdb 100644 --- a/MultronWinCleaner/Processes/Scan.cs +++ b/MultronWinCleaner/Processes/Scan.cs @@ -44,6 +44,7 @@ public class Scan int customAccessDays; int customAgeDays; static readonly EnumerationOptions ScanEnumeration = new EnumerationOptions { RecurseSubdirectories = true, IgnoreInaccessible = true, AttributesToSkip = FileAttributes.ReparsePoint }; + static readonly EnumerationOptions DeepScanEnumeration = new EnumerationOptions { IgnoreInaccessible = true, AttributesToSkip = FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReparsePoint }; CancellationTokenSource cts = new CancellationTokenSource(); List<(string file, long size, string path, int days, string date, string modified)> checkboxData = new List<(string file, long size, string path, int days, string date, string modified)>(); @@ -943,12 +944,12 @@ public async Task ScanCDirectoryAsync(string path) { if (Directory.Exists(path)) { - foreach (string dir in Directory.GetDirectories(path)) + foreach (string dir in Directory.EnumerateDirectories(path, "*", DeepScanEnumeration)) { if (main.cancelstatus.IsCancellationRequested) break; await ScanCDirectoryAsync(dir); } - foreach (string file in Directory.GetFiles(path)) + foreach (string file in Directory.EnumerateFiles(path, "*", DeepScanEnumeration)) { if (main.cancelstatus.IsCancellationRequested) break;