diff --git a/SabreTools.IO/Extensions/IOExtensions.cs b/SabreTools.IO/Extensions/IOExtensions.cs index cfe94a3..35524ac 100644 --- a/SabreTools.IO/Extensions/IOExtensions.cs +++ b/SabreTools.IO/Extensions/IOExtensions.cs @@ -259,7 +259,67 @@ namespace SabreTools.IO.Extensions } } -#if NET40_OR_GREATER || NETCOREAPP + /// + /// Returns an empty enumerable on any exception + public static IEnumerable SafeGetFileSystemEntries(this string path, string searchPattern, SearchOption searchOption) + { + try + { + var enumerable = Directory.GetFileSystemEntries(path, searchPattern); + return enumerable.SafeEnumerate(); + } + catch + { + return []; + } + } + +#if NET20 || NET35 + /// + /// Calls implementation + public static IEnumerable SafeEnumerateDirectories(this string path) + => path.SafeGetDirectories(); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateDirectories(this string path, string searchPattern) + => path.SafeGetDirectories(searchPattern); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateDirectories(this string path, string searchPattern, SearchOption searchOption) + => path.SafeGetDirectories(searchPattern, searchOption); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateFiles(this string path) + => path.SafeGetFiles(); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateFiles(this string path, string searchPattern) + => path.SafeGetFiles(searchPattern); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateFiles(this string path, string searchPattern, SearchOption searchOption) + => path.SafeGetFiles(searchPattern, searchOption); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateFileSystemEntries(this string path) + => path.SafeGetFileSystemEntries(); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateFileSystemEntries(this string path, string searchPattern) + => path.SafeGetFileSystemEntries(searchPattern); + + /// + /// Calls implementation + public static IEnumerable SafeEnumerateFileSystemEntries(this string path, string searchPattern, SearchOption searchOption) + => path.SafeGetFileSystemEntries(searchPattern, searchOption); +#else /// public static IEnumerable SafeEnumerateDirectories(this string path) {