/// <summary> /// Returns enumerable collection of <see cref="SnippetFile"/> deserialized from snippet files in a specified directory. /// </summary> /// <param name="directoryPath">The absolute or relative path to the directory to search.</param> /// <param name="searchOption">A <see cref="SearchOption"/> value that specifies whether the search should include all subdirectories or only current directory.</param> /// <returns>An enumerable collection <see cref="SnippetFile"/> being deserialized.</returns> public static IEnumerable <SnippetFile> DeserializeFiles(string directoryPath, SearchOption searchOption = SearchOption.TopDirectoryOnly) { foreach (string filePath in SnippetFileSearcher.EnumerateSnippetFiles(directoryPath, searchOption)) { yield return(DeserializeFile(filePath)); } }
/// <summary> /// Returns enumerable collection of snippet file names from a specified directories, optionally searching subdirectories. /// </summary> /// <param name="directoryPaths">Enumerable collection of absolute or relative paths to the directories to search.</param> /// <param name="searchOption">A <see cref="SearchOption"/> value that specifies whether the search should include all subdirectories or only current directory. The default value is <see cref="SearchOption.TopDirectoryOnly"/>.</param> /// <returns>An enumerable collection of snippet file names.</returns> /// <exception cref="ArgumentNullException"><paramref name="directoryPaths"/> is <c>null</c>.</exception> public static IEnumerable <string> EnumerateSnippetFiles(IEnumerable <string> directoryPaths, SearchOption searchOption) { if (directoryPaths == null) { throw new ArgumentNullException(nameof(directoryPaths)); } return(EnumerateSnippetFiles()); IEnumerable <string> EnumerateSnippetFiles() { foreach (string directoryPath in directoryPaths) { foreach (string filePath in SnippetFileSearcher.EnumerateSnippetFiles(directoryPath, searchOption)) { yield return(filePath); } } } }