Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Afficher fichiers a partir de la date.

Sujet résolu
    12 mai 2011 à 9:07:33

    Tout d'abord bonjour a tous !
    Je tiens juste a preciser que je suis nouvelle sur le site et que si quelque chose ne vas pas dans mon poste faite le moi savoir :)

    Bon entrons dans le vif du sujet.

    Je suis debutante en c# et je dois faire un programme qui affiche les fichiers ".dat" de tout les repertoire dans le quelle je me trouve a partir de sa date de creation.
    ( Se sont des fichiers de sauvgarde donc ceux vieux de plus d'un mois je dois les effacer)

    Voila le code que j'ai pour le moment:
    class Program
        {
    
            public static void ListFolder(DirectoryInfo dir)
            {
                Console.Write(dir.FullName);
                FileInfo[] fis = dir.GetFiles();
                foreach (FileInfo fi in fis)
                    Console.WriteLine(fi.FullName);
    
                DirectoryInfo[] dirs = dir.GetDirectories();
                foreach (DirectoryInfo subdir in dirs)
                    ListFolder(subdir);
            }
    
            static void Main(string[] args)
            {
                string[] files = Directory.GetFiles(path, "*.dat", SearchOption.AllDirectories);
    
                DirectoryInfo dir = new DirectoryInfo(@"D:\Server_Backup\backup");
                DirectoryInfo[] dirInfo = dir.GetDirectories();
                foreach (DirectoryInfo di in dirInfo)
                {
                    Console.WriteLine(di.FullName);
                }
    
                Console.ReadLine();
            }
        }
    


    Voila le probleme c'est que il ne reconnait pas "path" et donc le compilateur rale :/

    Je suis sure que c'est tout bete mais je ne trouve pas.
    J'espere que quelqu'un saura m'aider et me donner une piste pour la suite du code avec la date.

    Merci d'avance pour votre lecture et vos reponces, bonne journée.
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2011 à 10:17:03

      Citation : MSDN

      GetFiles(String, String) Retourne les noms des fichiers dans le répertoire spécifié qui satisfont au modèle de recherche spécifié.

      GetFiles(String, String, SearchOption) Retourne les noms des fichiers dans le répertoire spécifié qui correspondent au modèle de recherche spécifié, à l'aide d'une valeur pour déterminer s'il faut effectuer une recherche dans les sous-répertoires.


      En l'occurence ton "path" est censé être le répertoire dans lequel tu cherches. Tu dois donc plutôt avoir un truc du genre
      string[] files = Directory.GetFiles("D:\Server_Backup\backup", "*.dat", SearchOption.AllDirectories);
      

      C'est comme ça que je le comprends
      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2011 à 10:53:15

        Effectivement le path correspondais bien aue repertoire dans lequel je cherchais.

        J'ai trouvé ceci:
        static void Main(string[] args)
                {
                    string path = @"D:\Server_Backup\backup";
                    string searchPattern = "*.dat";
        
                    DirectoryInfo dir = new DirectoryInfo(path);
                    DirectoryInfo[] dirInfo = dir.GetDirectories();
        
                    FileInfo[] files = dir.GetFiles(searchPattern, SearchOption.AllDirectories);
                    foreach (DirectoryInfo di in dirInfo)
        
                    {
                        Console.WriteLine(di.FullName);
                    }
        
                    foreach (FileInfo file in files)
                    {
                        Console.WriteLine(file.FullName);
                    }
        
                    Console.ReadLine();
                }
        


        Sa me liste bien tout les fichiers de chaque dossier.

        Merci pour ton aide.
        • Partager sur Facebook
        • Partager sur Twitter
          12 mai 2011 à 11:14:24

          De rien. Mets ton sujet en résolu :)
          • Partager sur Facebook
          • Partager sur Twitter
            12 mai 2011 à 11:28:20

            Ben il n'est pas tout a fait resolu il me reste encore a afficher seulement ceux qui ne sont pas du mois actuel donc par rapport a la date qui est dans le nom du fichier.

            Je sais j'en demande beaucoup desolé.
            • Partager sur Facebook
            • Partager sur Twitter
              12 mai 2011 à 14:08:43

              http://msdn.microsoft.com/fr-fr/librar [...] .compare.aspx
              Je ne sais pas exactemtnt comment ca peut te servir, mais je pense que c'est cette fonction dont tu as besoin.
              • Partager sur Facebook
              • Partager sur Twitter
                12 mai 2011 à 14:16:42

                Oui j'ai trouver sa aussi mais j'ai aucune idee de comment m'en servir, puis je ne peux pas taper de date en "dur" puisqu'elle change tout les jours.
                • Partager sur Facebook
                • Partager sur Twitter
                  12 mai 2011 à 14:24:08

                  Il me semble que la classe FileInfo a une propriete LastTouch ou un truc du genre qui permet de connaitre la date de la derniere modification apportee au fichier.

                  Edit: En fait c'est LastWriteTime ou LastAccesTime
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 mai 2011 à 15:50:38

                    Tu peux simplifier un peu ton code: récupérer et lister les sous-dossiers de ton dossier backup n'a (à priori) pas d'intérêt ici :)

                    Tu peux obtenir la date correspondant à "un mois avant aujourd'hui" comme ceci:
                    DateTime minDate = DateTime.Today.AddMonths(-1);
                    

                    Il te restera ensuite à comparer la date d'écriture de chaque fichier (effectivement donnée par LastWriteTime) avec cette date-ci ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 mai 2011 à 16:44:12

                      Citation : Orwell

                      Tu peux simplifier un peu ton code: récupérer et lister les sous-dossiers de ton dossier backup n'a (à priori) pas d'intérêt ici :)


                      J'en aurais besoin pour plus tard, mais merci du conseil :)

                      Bon mon programme fonctionne tres bien ( a se stade :-° )
                      Toute vos reponses mon guider et servi.

                      Merci beaucoup à tous :D
                      • Partager sur Facebook
                      • Partager sur Twitter

                      [C#] Afficher fichiers a partir de la date.

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown