/// <summary> /// Compare les contenus maîtres et client et renvoie le DeltaMD5 /// </summary> /// <returns>DeltaMD5 entre le maître et le client</returns> public DeltaMd5 DeltaFichiersAvecMaitre() { string fichierMaitre = _dossierTamponSynchro + "\\" + C.FICHIER_MAITRE; string fichierEsclave = _dossierTamponSynchro + "\\" + _conf.NomClient + ".md5"; string[] md5Maitre; string[] md5Esclave; var pMaitre = 0; var pEsclave = 0; var ajouts = new List <Md5Fichier>(); var suppressions = new List <Md5Fichier>(); if (File.Exists(fichierEsclave) && File.Exists(fichierMaitre)) { md5Maitre = File.ReadAllLines(fichierMaitre); md5Esclave = File.ReadAllLines(fichierEsclave); while (true) { if (pMaitre >= md5Maitre.Length && pEsclave >= md5Esclave.Length) { break; } if (pMaitre >= md5Maitre.Length) { suppressions.Add(Md5Fichier.FromString(md5Esclave[pEsclave])); pEsclave++; } else if (pEsclave >= md5Esclave.Length) { ajouts.Add(Md5Fichier.FromString(md5Maitre[pMaitre])); pMaitre++; } else if (string.Compare(md5Maitre[pMaitre], md5Esclave[pEsclave]) < 0) { ajouts.Add(Md5Fichier.FromString(md5Maitre[pMaitre])); pMaitre++; } else if (string.Compare(md5Maitre[pMaitre], md5Esclave[pEsclave]) > 0) { suppressions.Add(Md5Fichier.FromString(md5Esclave[pEsclave])); pEsclave++; } else if (string.Compare(md5Maitre[pMaitre], md5Esclave[pEsclave]) == 0) { pMaitre++; pEsclave++; } } _nbFichiersMaitre = md5Maitre.Length; } return(new DeltaMd5(ajouts, suppressions)); }
public Demande(string fichierDemande) { var nomFichier = Path.GetFileName(fichierDemande); var infos = nomFichier.Split('.'); _fichierDemande = nomFichier; _md5f = Md5Fichier.FromString(File.ReadAllText(fichierDemande)); _partStart = long.Parse(infos[1]); Demandeur = infos[2]; }
/// <summary> /// Supprime un fichier synchronisé (le déplace dans le dossier de travail) et les demandes liées. /// </summary> /// <param name="md5f">Fichier à supprimer</param> public void SupprimeFichier(Md5Fichier md5f) { if (File.Exists(_dossier + "\\" + md5f.Chemin)) { Directory.CreateDirectory(Path.GetDirectoryName(_dossier + "\\" + C.DOSSIER_TRAVAIL + "\\" + md5f.Chemin)); File.Move(_dossier + "\\" + md5f.Chemin, _dossier + "\\" + C.DOSSIER_TRAVAIL + "\\" + md5f.Chemin); } foreach (string fichier in Directory.GetFiles(_dossierTamponSynchro, md5f.Md5 + "*." + _conf.NomClient + "*.dem")) { File.Delete(fichier); } }
//public string FichierReponse { get { return string.Format(C.FORMAT__FICHIER_REPONSE, _md5f.Md5, _noPart); } } public Demande(Md5Fichier md5f, string nomClient, long partStart = 0) { _md5f = md5f; _partStart = partStart; _fichierDemande = U.FichierDemande(md5f.Md5, _partStart.ToString(), nomClient); }