public void Rejoindre(string dossier) { var confSynchro = new ConfSynchro(_conf.NomClient, dossier); _fichierConfLocale = _dossierTamponSynchro + "\\." + _conf.NomClient + ".client"; File.WriteAllText(_fichierConfLocale, JsonConvert.SerializeObject(confSynchro)); _clients.Add(confSynchro); }
/// <summary> /// Constructeur /// </summary> /// <param name="nom">Nom de la synchro (correspond au nom du sous dossier dans le dossier tampon)</param> /// <param name="conf">Configuration</param> /// <param name="type">Type de synchro</param> public Synchro(string nom, Conf conf, TypeSynchro type) { ConfSynchro confClient, confMaitre; _type = type; _conf = conf; _nom = nom; _dossierTamponSynchro = conf.DossierTampon + "\\" + Nom; _fichierConf = _dossierTamponSynchro + "\\" + C.FICHIER_CONF_SYNCHRO; if (!Directory.Exists(conf.DossierTampon)) { _valide = false; _messageErreur = "Le dossier tampon n'existe pas."; } if (!_valide) { try { Directory.CreateDirectory(_dossierTamponSynchro); } catch (Exception e) { _valide = false; _messageErreur = "Impossible de créer le dossier tampon \"" + _dossierTamponSynchro + "\" (" + e.Message + ")"; Logger.Log(_messageErreur); } } if (_valide) { if (!File.Exists(_fichierConf)) { _valide = false; _messageErreur = "Le fichier de conf (" + _fichierConf + ") n'existe pas"; Logger.Log(_messageErreur); } } if (_valide) { confMaitre = JsonConvert.DeserializeObject <ConfSynchro>(File.ReadAllText(_fichierConf)); _maitre = confMaitre.Client; _dossierSource = confMaitre.Chemin; if (File.Exists(_dossierTamponSynchro + "\\maitre.md5")) { _nbFichiersMaitre = File.ReadAllLines(_dossierTamponSynchro + "\\maitre.md5").Length; } if (_type == TypeSynchro.Maitre) { _dossier = _dossierSource; _confLocale = confMaitre; _fichierConfLocale = _fichierConf; } foreach (string fichierClient in Directory.GetFiles(_dossierTamponSynchro, "*.client")) { confClient = JsonConvert.DeserializeObject <ConfSynchro>(File.ReadAllText(fichierClient)); if (File.Exists(_dossierTamponSynchro + "\\" + confClient.Client + ".md5")) { confClient.NbFichiers = File.ReadAllLines(_dossierTamponSynchro + "\\" + confClient.Client + ".md5").Length; } _clients.Add(new ConfSynchro(confClient.Client, confClient.Chemin, confClient.NbFichiers)); if (confClient.Client == _conf.NomClient && _type == TypeSynchro.Esclave) { _dossier = confClient.Chemin; _confLocale = confClient; _fichierConfLocale = fichierClient; } } //Logger.Log(_clients["bip"]); } if (!Directory.Exists(_dossier)) { _valide = false; _messageErreur = "Le dossier à synchroniser n'existe pas."; } }