File: Mount\IDirectory.cs
Web Access
Project: src\src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Abstractions\Microsoft.TemplateEngine.Abstractions.csproj (Microsoft.TemplateEngine.Abstractions)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.TemplateEngine.Abstractions.Mount
{
    /// <summary>
    /// Defines directory <see cref="IFileSystemInfo"/> entry.
    /// </summary>
    public interface IDirectory : IFileSystemInfo
    {
        /// <summary>
        /// Enumerates the <see cref="IFileSystemInfo"/> entries in the directory.
        /// </summary>
        /// <param name="pattern">Matching pattern for the entries, see <see cref="Directory.EnumerateFileSystemEntries(string, string, SearchOption)"/> for more details.</param>
        /// <param name="searchOption">Matching pattern for the entries, see <see cref="Directory.EnumerateFileSystemEntries(string, string, SearchOption)"/> for more details.</param>
        /// <returns>The enumerator to <see cref="IFileSystemInfo"/> entries in the directory.</returns>
        IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(string pattern, SearchOption searchOption);

        /// <summary>
        /// Enumerates the <see cref="IFile"/> entries in the directory.
        /// </summary>
        /// <param name="pattern">Matching pattern for the entries, see <see cref="Directory.EnumerateFiles(string, string, SearchOption)"/> for more details.</param>
        /// <param name="searchOption">Matching pattern for the entries, see <see cref="Directory.EnumerateFiles(string, string, SearchOption)"/> for more details.</param>
        /// <returns>The enumerator to <see cref="IFile"/> entries in the directory.</returns>
        IEnumerable<IFile> EnumerateFiles(string pattern, SearchOption searchOption);

        /// <summary>
        /// Enumerates the <see cref="IDirectory"/> entries in the directory.
        /// </summary>
        /// <param name="pattern">Matching pattern for the entries, see <see cref="Directory.EnumerateDirectories(string, string, SearchOption)"/> for more details.</param>
        /// <param name="searchOption">Matching pattern for the entries, see <see cref="Directory.EnumerateDirectories(string, string, SearchOption)"/> for more details.</param>
        /// <returns>The enumerator to <see cref="IDirectory"/> entries in the directory.</returns>
        IEnumerable<IDirectory> EnumerateDirectories(string pattern, SearchOption searchOption);
    }
}