Ejemplo n.º 1
0
 private void GetContenu()
 {
     try
     {
         double  tailleKo = 0, tailleMo = 0, tailleGo = 0;
         decimal nbFichierGo = 0;
         int     nbFiles = 0, nbDir = 0;
         foreach (FileInfo file in Files)
         {
             //Pour chaque fichiers du dossier de téléchargement
             nbFiles++;                                                   //Incrémentation du
             tailleKo = file.Length / 1024;                               //On récupère la taille du fichier courant en Ko
             tailleMo = Math.Round(Convert.ToDouble(tailleKo / 1024), 2); //Puis conversion en Mo
             tailleGo = Math.Round(Convert.ToDouble(tailleMo / 1024), 2); // Et en Go
             if (file.Name != "desktop.ini")
             {
                 //On vérifie que le fichier en cours n'est pas Desktop.ini, qui est un fichier système
                 if (tailleKo == 0)
                 {
                     dGV_Telechargement.Rows.Add(false, file.Name, "Fichier", tailleKo);                //Si le fichier est très petit alors on n'ajoute que sa taille en Ko
                 }
                 else if (tailleGo < 0.1)
                 {
                     dGV_Telechargement.Rows.Add(false, file.Name, "Fichier", tailleKo, tailleMo);                      //Sinon on ajoute la taille en Mo
                 }
                 else
                 {
                     dGV_Telechargement.Rows.Add(false, file.Name, "Fichier", tailleKo, tailleMo, tailleGo);  //Et sinon on ajoute tout
                 }
             }
         }
         foreach (DirectoryInfo dir in Directories)
         {
             //Pour chaque dossiers du dossier de téléchargement
             nbDir++; //Incrémentation du nombre de dossier
             //Le traitement est le même que pour les fichiers
             tailleKo = Math.Round(Convert.ToDouble(Gestion_Verification.FolderSize(folder + "\\" + dir.ToString(), "Ko")), 2);
             tailleMo = Math.Round(Convert.ToDouble(Gestion_Verification.FolderSize(folder + "\\" + dir.ToString(), "Mo")), 2);
             tailleGo = Math.Round(Convert.ToDouble(Gestion_Verification.FolderSize(folder + "\\" + dir.ToString(), "Go")), 2);
             if (tailleKo == 0)
             {
                 dGV_Telechargement.Rows.Add(false, dir.Name, "Dossier", tailleKo);
             }
             else if (tailleGo < 0.1)
             {
                 dGV_Telechargement.Rows.Add(false, dir.Name, "Dossier", tailleKo, tailleMo);
             }
             else
             {
                 dGV_Telechargement.Rows.Add(false, dir.Name, "Dossier", tailleKo, tailleMo, tailleGo);
             }
         }
         if (nbFiles == 0 && nbDir == 0)
         {
             //Si aucun fichier ni sous-dossiers n'a été trouvé, alors on désactive tout et on affiche un message
             dGV_Telechargement.Columns[0].Visible = false;
             dGV_Telechargement.Columns[1].Visible = false;
             dGV_Telechargement.Columns[2].Visible = false;
             dGV_Telechargement.Columns[3].Visible = false;
             dGV_Telechargement.Columns[4].Visible = false;
             MessageBox.Show("Le dossier est vide", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         for (int i = 0; i < dGV_Telechargement.Rows.Count; i++)
         {
             //On vérifie s'il y a une ligne qui utilise la colonne Taille (en Go)
             nbFichierGo += Convert.ToDecimal(dGV_Telechargement.Rows[i].Cells["ColumnTailleGo"].Value);
         }
         if (nbFichierGo < 1)
         {
             //Si ce n'est pas le cas, alors on la désactive
             dGV_Telechargement.Columns["ColumnTailleGo"].Visible = false;
         }
     }
     catch (Exception e)
     {
         //Affichage d'un message en cas d'erreur
         MessageBox.Show(e.Message);
     }
 }