public static void VerificarIntegridade(Dir dir) { var currentfiles = SHA256Code.GenerateFromDir(dir.path); var databaseFiles = AjudanteParaBD.SelectFilesWithDir(dir.path); foreach (TFile f in databaseFiles) { //Se foi eliminado if (!currentfiles.Keys.Contains(f.path)) { Console.WriteLine("Removido o ficheiro \'" + f.path + "\' da base de dados."); AjudanteParaBD.DeleteFile(f); continue; } // Se existir vamos ver se foi alterado if (!currentfiles[f.path].Equals(f.sha256)) { Console.WriteLine("O ficheiro \'" + f.path + "\' sofreu alteracoes."); AjudanteParaBD.UpdateFile(new TFile(f.path, currentfiles[f.path], dir.path)); } else { Console.WriteLine("O ficheiro \'" + f.path + "\' não sofreu alteracoes."); } currentfiles.Remove(f.path); } // Se ainda houver ficheiros, são os que foram adicionados foreach (string file in currentfiles.Keys) { Console.WriteLine("Adicionado o ficheiro \'" + file + "\' a base de dados."); AjudanteParaBD.InsertFile(new TFile(file, currentfiles[file], dir.path)); } }
public string[] VerificarIntegridadeSHA256() { var currentfiles = SHA256Code.GenerateFromDir(dir.path); var databaseFiles = AjudanteParaBD.SelectFilesWithDir(dir.path); var lines = new List <string>(); foreach (TFile f in databaseFiles) { //Se foi eliminado if (!currentfiles.Keys.Contains(f.path)) { lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - Removido o ficheiro \'" + f.path + "\' da base de dados."); AjudanteParaBD.DeleteFile(f); continue; } // Se existir vamos ver se foi alterado if (!currentfiles[f.path].Equals(f.sha256)) { lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - O ficheiro \'" + f.path + "\' sofreu alteracoes."); AjudanteParaBD.UpdateFile(new TFile(f.path, currentfiles[f.path], dir.path)); } currentfiles.Remove(f.path); } // Se ainda houver ficheiros, são os que foram adicionados foreach (string file in currentfiles.Keys) { lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - Adicionado o ficheiro \'" + file + "\' a base de dados."); AjudanteParaBD.InsertFile(new TFile(file, currentfiles[file], dir.path)); } return(lines.ToArray()); }