diff --git a/FindDuplicates/ListCommand.cs b/FindDuplicates/ListCommand.cs index 206c672..b50447c 100644 --- a/FindDuplicates/ListCommand.cs +++ b/FindDuplicates/ListCommand.cs @@ -89,18 +89,7 @@ internal sealed class ListCommand : AsyncCommand if (relativePath != ".") AnsiConsole.MarkupLineInterpolated($"Searching [cyan]{relativePath}[/]"); - if (settings.Recursive) - { - try - { - foreach (DirectoryInfo childDirectory in currentDirectory.EnumerateDirectories()) - directoryStack.Push(childDirectory); - } - catch (Exception ex) - { - AnsiConsole.MarkupLineInterpolated($"[red]Error:[/] {ex.Message}"); - } - } + AddChildDirectories(settings, currentDirectory, directoryStack); try { @@ -142,6 +131,22 @@ internal sealed class ListCommand : AsyncCommand } } + private static void AddChildDirectories(ListSettings settings, DirectoryInfo directory, Stack stack) + { + if (!settings.Recursive) + return; + + try + { + foreach (DirectoryInfo childDirectory in directory.EnumerateDirectories()) + stack.Push(childDirectory); + } + catch (Exception ex) + { + AnsiConsole.MarkupLineInterpolated($"[red]Error:[/] {ex.Message}"); + } + } + private static string ByteSpanToString(ReadOnlySpan buffer) { var builder = new StringBuilder();