Files
lux/Lux.Report.Data/Services/IFileService.cs
T
2026-04-09 12:18:23 +02:00

93 lines
3.7 KiB
C#

namespace Lux.Report.Data.Services
{
/// <summary>
/// Interfaccia servizio gestione IO File-based
/// </summary>
public interface IFileService
{
#region Public Methods
/// <summary>
/// Esegue conteggio file trovati in folder richiesta dato pattern
/// </summary>
/// <param name="folderPath">Cartella di riferimento</param>
/// <param name="pattern">Pattern ricerca</param>
/// <param name="hideDot">Nasconde i "dotfile" (file nascosti che iniziano per .)</param>
/// <returns>Num file trovati</returns>
int CountFile(string folderPath, string pattern, bool hideDot);
/// <summary>
/// Duplica un file dato path origine + destinazione (verificando esista origine)
/// </summary>
/// <param name="origPath">Path di origine</param>
/// <param name="destPath">Path di destinazione</param>
/// <returns></returns>
bool FileCopy(string origPath, string destPath);
/// <summary>
/// Duplica un file dato path origine + destinazione (verificando esista origine)
/// </summary>
/// <param name="origPath">Path del file da eliminare</param>
/// <returns></returns>
bool FileDelete(string origPath);
/// <summary>
/// Verifica esistenza file richiesto
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
bool FileExists(string filePath);
/// <summary>
/// Verifica esistenza Folder richiesto
/// </summary>
/// <param name="folderPath"></param>
/// <returns></returns>
bool FolderExists(string folderPath);
/// <summary>
/// Elenco file trovati in folder richiesta dato pattern
/// </summary>
/// <param name="folderPath">Cartella di riferimento</param>
/// <param name="pattern">Pattern ricerca</param>
/// <param name="hideDot">Nasconde i "dotfile" (file nascosti che iniziano per .)</param>
/// <returns>Elenco file trovati</returns>
List<string> ListFile(string folderPath, string pattern, bool hideDot);
/// <summary>
/// Restituisce contenuto file come byte array
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
byte[] ReadAllBytes(string filePath);
#endregion Public Methods
///// <summary>
///// Salva contenuto file (sincrono)
///// </summary>
///// <param name="folderPath">Cartella del file</param>
///// <param name="pattern">Nome secure del file</param>
///// <param name="content">Contenuto file</param>
///// <returns>True se salvato con successo</returns>
//bool SaveFileContent(string folderPath, string pattern, string content);
///// <summary>
///// Salva contenuto file asincrono
///// </summary>
///// <param name="folderPath">Cartella del file</param>
///// <param name="pattern">Nome secure del file</param>
///// <param name="content">Contenuto file</param>
///// <returns>True se salvato con successo</returns>
//Task<bool> SaveFileContentAsync(string folderPath, string pattern, string content);
///// <summary>
///// Salva stream file generico
///// </summary>
///// <param name="folderPath">Cartella del file</param>
///// <param name="pattern">Nome secure del file</param>
///// <param name="contentStream">Stream contenitore dati</param>
///// <returns>True se salvato con successo</returns>
//Task<bool> SaveFileStreamAsync(string folderPath, string pattern, Stream contentStream);
}
}