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

using Microsoft.TemplateEngine.Abstractions.Mount;

namespace Microsoft.TemplateEngine.Edge.Mount
{
    internal abstract class DirectoryBase : FileSystemInfoBase, IDirectory
    {
        protected DirectoryBase(IMountPoint mountPoint, string fullPath, string name)
            : base(mountPoint, fullPath, name, FileSystemInfoKind.Directory)
        {
        }

        public virtual IEnumerable<IDirectory> EnumerateDirectories(string pattern, SearchOption searchOption)
        {
            return EnumerateFileSystemInfos(pattern, searchOption).OfType<IDirectory>();
        }

        public virtual IEnumerable<IFile> EnumerateFiles(string pattern, SearchOption searchOption)
        {
            return EnumerateFileSystemInfos(pattern, searchOption).OfType<IFile>();
        }

        public abstract IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(string pattern, SearchOption searchOption);
    }
}