using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Repositories { /// <summary> /// Репозиторий хранения фалов /// </summary> public interface IFileStorageRepository { /// <summary> /// Директория хранения файлов /// </summary> string RootPath { get; } /// <summary> /// Получение длинны фала и проверка его наличия, если отсутствует падает исключение /// </summary> /// <param name="srcFilePath"></param> /// <returns></returns> long GetLengthFile(string srcFilePath); /// <summary> /// Перемещение файла /// </summary> /// <param name="srcFilePath"></param> /// <param name="filePath"></param> void MoveFile(string srcFilePath, string filePath); /// <summary> /// Копирование файла /// </summary> /// <returns></returns> Task CopyFileAsync(string filePath, Stream fileStream, CancellationToken token); /// <summary> /// Удаление файла /// </summary> /// <param name="fileName"></param> void DeleteFile(string fileName); /// <summary> /// Проверка наличия файла /// </summary> /// <param name="fullPath"></param> /// <param name="fileName"></param> /// <returns></returns> bool FileExists(string fullPath, string fileName); } }