/// <summary> /// Metodo utile per ricercare i file all'interno di una directory e inserirli in un database FileStructure /// </summary> /// <param name="path"> /// Percorso /// </param> /// <returns> /// Lista di tutti i file all'interno di una directory nel formato FileStructure /// </returns> public static List <FileStructure> FilesInsideDir(string path) { List <FileStructure> local = new List <FileStructure>(); string[] filelist = Directory.GetFiles(path); foreach (string file in filelist) { string nameFile; decimal size; DateTime lastModified; nameFile = Path.GetFileNameWithoutExtension(file); FileInfo informationFile = new FileInfo(file); size = informationFile.Length / 2 ^ 20; lastModified = informationFile.LastWriteTime; FileStructure obj = new FileStructure() { Name = nameFile, Directory = file, Size = size, Extension = GetExstension(file), LastModifiedTime = lastModified }; local.Add(obj); } return(local); }
/// <summary> /// Metodo utile per ricercare ricorsivamente i file all'interno di una directory e inserirli in un database FileStructure /// </summary> /// <param name="path"> /// Percorso /// </param> /// <param name="recursive"> /// Ricorsivo /// </param> /// <returns> /// Lista di tutti i file all'interno di una directory, e delle sue sottodirectory, nel formato FileStructure /// </returns> public static List <FileStructure> FilesInsideDir(string path, bool recursive) { if (recursive) { List <FileStructure> local = new List <FileStructure>(); foreach (string file in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)) { string nameFile; decimal size; DateTime lastModified; nameFile = Path.GetFileNameWithoutExtension(file); FileInfo informationFile = new FileInfo(file); size = informationFile.Length / 2 ^ 20; lastModified = informationFile.LastWriteTime; FileStructure obj = new FileStructure() { Name = nameFile, Directory = file, Size = size, Extension = GetExstension(file), LastModifiedTime = lastModified, HashValue = SHA256calc(file) }; local.Add(obj); } foreach (var item in FilesInsideDir(path)) { local.Add(item); } return(local); } else { return(FilesInsideDir(path)); } }