using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace API.Interfaces.Services { public interface IDirectoryService { /// /// Lists out top-level folders for a given directory. Filters out System and Hidden folders. /// /// Absolute path of directory to scan. /// List of folder names IEnumerable ListDirectory(string rootPath); /// /// Gets files in a directory. If searchPatternExpression is passed, will match the regex against for filtering. /// /// /// /// string[] GetFilesWithExtension(string path, string searchPatternExpression = ""); Task ReadFileAsync(string path); bool CopyFilesToDirectory(IEnumerable filePaths, string directoryPath); bool Exists(string directory); IEnumerable GetFiles(string path, string searchPatternExpression = "", SearchOption searchOption = SearchOption.TopDirectoryOnly); void CopyFileToDirectory(string fullFilePath, string targetDirectory); public bool CopyDirectoryToDirectory(string sourceDirName, string destDirName, string searchPattern = "*"); } }