public long FourniReponse(Demande demande) { string fichierTampon; var fichierTemp = demande.Md5f.Md5 + ".temp"; var fichierDemandé = Dossier + "\\" + demande.Md5f.Chemin; var infosFichier = new FileInfo(fichierDemandé); var taille = infosFichier.Length; if (taille > C.TAILLE_MAX_FICHIER * 1024 * 1024) { fichierTampon = _dossierTamponSynchro + "\\" + demande.FichierReponse(U.ExtractFilePart(fichierDemandé, fichierTemp, demande.PartStart, C.TAILLE_MAX_FICHIER)); if (!File.Exists(fichierTampon)) { File.Copy(fichierTemp, fichierTampon); } } else { fichierTampon = _dossierTamponSynchro + "\\" + demande.FichierReponse(0); if (!File.Exists(fichierTampon)) { File.Copy(fichierDemandé, fichierTampon); } } return(new FileInfo(fichierTampon).Length); }
/// <summary> /// Pose le fichier de demande dans le dossier tampon /// </summary> /// <param name="demande">Demande à faire</param> public void FaireDemande(Demande demande) { var fichierDemande = _dossierTamponSynchro + "\\" + demande.FichierDemande; if (!File.Exists(fichierDemande)) { File.WriteAllText(fichierDemande, demande.Md5f.ToString()); } }
public Demande[] GetDemandes() { var fichiersDemandes = Directory.GetFiles(_dossierTamponSynchro, "*." + C.EXT__DEMANDE, SearchOption.TopDirectoryOnly); var retour = new Demande[fichiersDemandes.Length]; var compteur = 0; foreach (string fichierDemande in fichiersDemandes) { retour[compteur] = new Demande(fichierDemande); compteur++; } return(retour); }
/// <summary> /// Récupère la réponse à une demande /// </summary> /// <param name="demande">Demande faite par le client</param> /// <param name="fichierReponse">Fichier de réponse du maitre</param> /// <returns>True si toutes les parties du fichiers sont rassemblées </returns> public Demande RecupereReponse(Demande demande, string fichierReponse) { string[] partsExistantes; string fichierDestination; Demande retour = null; var infos = Path.GetFileName(fichierReponse).Split('.'); List <long> curseurs; List <string> parts; if (infos[2] == "0") { fichierDestination = Dossier + "\\" + demande.Md5f.Chemin; Directory.CreateDirectory(Path.GetDirectoryName(fichierDestination)); File.Copy(fichierReponse, fichierDestination, true); } else if (infos[2] == "1") { partsExistantes = Directory.GetFiles(_dossier + "\\" + C.DOSSIER_TRAVAIL, demande.Md5f.Md5 + ".*", SearchOption.TopDirectoryOnly); if (partsExistantes.Length > 0) { curseurs = new List <long>(); parts = new List <string>(); foreach (string part in partsExistantes) { curseurs.Add(long.Parse(Path.GetFileName(part).Split('.')[1])); } curseurs.Sort(); curseurs.Add(1); fichierDestination = Dossier + "\\" + C.DOSSIER_TRAVAIL + "\\" + demande.Md5f.Md5 + "." + infos[2]; Directory.CreateDirectory(Path.GetDirectoryName(fichierDestination)); File.Copy(fichierReponse, fichierDestination, true); foreach (long curseur in curseurs) { parts.Add(_dossier + "\\" + C.DOSSIER_TRAVAIL + "\\" + demande.Md5f.Md5 + "." + curseur); } fichierDestination = Dossier + "\\" + demande.Md5f.Chemin; U.AssembleFileParts(parts.ToArray(), fichierDestination); foreach (string part in parts) { File.Delete(part); } } } else { fichierDestination = Dossier + "\\" + C.DOSSIER_TRAVAIL + "\\" + demande.Md5f.Md5 + "." + infos[2]; Directory.CreateDirectory(Path.GetDirectoryName(fichierDestination)); File.Copy(fichierReponse, fichierDestination, true); retour = new Demande(demande.Md5f, _confLocale.Client, long.Parse(infos[2])); } SupprimeDemande(demande); if (Directory.GetFiles(_dossierTamponSynchro, demande.Md5f.Md5 + "." + demande.PartStart + ".*." + C.EXT__DEMANDE).Length == 0) { File.Delete(fichierReponse); } return(retour); }
public bool FichierDemandeExiste(Demande demande) { var nomFichier = _dossier + "\\" + demande.Md5f.Chemin; return(File.Exists(nomFichier)); }
public void SupprimeDemande(Demande demande) { File.Delete(_dossierTamponSynchro + "\\" + demande.FichierDemande); }
/*public string ReponseExiste (Demande demande) { * return File.Exists(demande.FichierReponseExistant(_dossierTamponSynchro)) ? demande.FichierReponseExistant(_dossierTamponSynchro) : null; * }*/ public bool FichierDeDemandeExiste(Demande demande) { return(File.Exists(_dossierTamponSynchro + "\\" + demande.FichierDemande)); }