Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        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];
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
        //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);
        }