From 770536fbd71138fcf19674f9643ceb790b2b639c Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 6 Jan 2025 10:33:13 -0500 Subject: [PATCH] Simplify some Folder logic --- SabreTools.FileTypes/Folder.cs | 38 ++++++++++++++-------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/SabreTools.FileTypes/Folder.cs b/SabreTools.FileTypes/Folder.cs index 0312316b..be32c25d 100644 --- a/SabreTools.FileTypes/Folder.cs +++ b/SabreTools.FileTypes/Folder.cs @@ -225,29 +225,23 @@ namespace SabreTools.FileTypes if (Filename == null) return null; - if (_children == null || _children.Count == 0) - { - _children = []; -#if NET20 || NET35 - foreach (string file in Directory.GetFiles(Filename, "*")) -#else - foreach (string file in Directory.EnumerateFiles(Filename, "*", SearchOption.TopDirectoryOnly)) -#endif - { - BaseFile? nf = FileTypeTool.GetInfo(file, _hashTypes); - if (nf != null) - _children.Add(nf); - } + // If we already have children + if (_children != null && _children.Count > 0) + return _children; -#if NET20 || NET35 - foreach (string dir in Directory.GetDirectories(Filename, "*")) -#else - foreach (string dir in Directory.EnumerateDirectories(Filename, "*", SearchOption.TopDirectoryOnly)) -#endif - { - var fl = new Folder(dir); - _children.Add(fl); - } + // Build the child item list + _children = []; + foreach (string file in IOExtensions.SafeEnumerateFiles(Filename, "*", SearchOption.TopDirectoryOnly)) + { + BaseFile? nf = FileTypeTool.GetInfo(file, _hashTypes); + if (nf != null) + _children.Add(nf); + } + + foreach (string dir in IOExtensions.SafeEnumerateDirectories(Filename, "*", SearchOption.TopDirectoryOnly)) + { + var fl = new Folder(dir); + _children.Add(fl); } return _children;