diff --git a/SabreTools.IO/Extensions/IOExtensions.cs b/SabreTools.IO/Extensions/IOExtensions.cs index 451bc95..cfe94a3 100644 --- a/SabreTools.IO/Extensions/IOExtensions.cs +++ b/SabreTools.IO/Extensions/IOExtensions.cs @@ -119,20 +119,20 @@ namespace SabreTools.IO.Extensions // If it does and it is empty, return a blank enumerable #if NET20 || NET35 - if (!Directory.GetFiles(root, "*", SearchOption.AllDirectories).Any()) + if (!root!.SafeGetFileSystemEntries("*").Any()) #else - if (!Directory.EnumerateFileSystemEntries(root, "*", SearchOption.AllDirectories).Any()) + if (!root!.SafeEnumerateFileSystemEntries("*", SearchOption.AllDirectories).Any()) #endif return []; // Otherwise, get the complete list #if NET20 || NET35 - return Directory.GetDirectories(root, "*", SearchOption.AllDirectories) - .Where(dir => !Directory.GetFiles(dir, "*", SearchOption.AllDirectories).Any()) + return root!.SafeGetDirectories("*", SearchOption.AllDirectories) + .Where(dir => !dir.SafeGetFileSystemEntries("*").Any()) .ToList(); #else - return Directory.EnumerateDirectories(root, "*", SearchOption.AllDirectories) - .Where(dir => !Directory.EnumerateFileSystemEntries(dir, "*", SearchOption.AllDirectories).Any()) + return root!.SafeEnumerateDirectories("*", SearchOption.AllDirectories) + .Where(dir => !dir.SafeEnumerateFileSystemEntries("*", SearchOption.AllDirectories).Any()) .ToList(); #endif } @@ -315,6 +315,13 @@ namespace SabreTools.IO.Extensions var enumerable = Directory.EnumerateFileSystemEntries(path, searchPattern); return enumerable.SafeEnumerate(); } + + /// + public static IEnumerable SafeEnumerateFileSystemEntries(this string path, string searchPattern, SearchOption searchOption) + { + var enumerable = Directory.EnumerateFileSystemEntries(path, searchPattern, searchOption); + return enumerable.SafeEnumerate(); + } #endif #endregion