IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Boucle foreach sur tableau devenu inaccessible


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Par défaut Boucle foreach sur tableau devenu inaccessible
    Bonjour à toute la communauté !


    Je viens vers vous suite à un problème rencontré subitement sur une boucle foreach faite sur un tableau !

    Mon problème est simple... Tout fonctionnait à merveille... Mais lorsque j'ai ajouté la référence System.Configuration et utilisé le fichier de configuration App.config cette fameuse boucle à cessé de fonctionner.

    Lorsque je place un Console.WriteLine(); dedans rien ne s'affiche !

    Je n'arrive pas à comprendre pourquoi...


    App.config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
      <appSettings>
        <add key="sourcePath" value="C:\Faultwin\source\"/>
        <add key="targetPath" value="C:\Faultwin\target\"/>
        <add key="sourceExtension" value=".log"/>
        <add key="targetExtension" value=".txt"/>
      </appSettings>
    </configuration>
    Program.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    /*
     * Auteur : LhtlDrn
     * Date : 06/07/2012
     * 
     */
     
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Configuration;
     
    namespace Faultwin
    {
        /// <summary>
        ///  Copie un fichier de A vers B.
        ///  Renomme le fichier avec la date du jour (yyyyMMdd).
        ///  Change l'extension du fichier.
        /// </summary>
        class Program
        {
            static void Main(string[] args)
            {
                string sourcePath = ConfigurationManager.AppSettings["sourcePath"];
                string targetPath = ConfigurationManager.AppSettings["targetPath"];
                string sourceExtension = ConfigurationManager.AppSettings["sourceExtension"];
                string targetExtension = ConfigurationManager.AppSettings["targetExtension"];
                string dateToday = DateTime.Now.Date.ToString("yyyyMMdd");
     
                // Liste tout les fichiers .txt du répertoire sourcePath
                string[] sourceFileTab = Directory.GetFiles(sourcePath, sourceExtension);
                foreach (string sSource in sourceFileTab)
                {
                    try
                    {
                        string sTarget = Path.Combine(targetPath, Path.GetFileName(sSource));
     
                        // Copie le fichier de "sSource" vers "sTarget"
                        File.Copy(sSource, sTarget, true);
     
                        if (File.Exists(sTarget))
                        {
                            Console.WriteLine("{0} copied to {1}", sSource, sTarget);
                        }
     
                        // Renommer et change l'extension du fichier
                        File.Move(sTarget, Path.Combine(targetPath, dateToday + targetExtension));
     
                        if (File.Exists(Path.Combine(targetPath, dateToday + targetExtension)))
                        {
                            Console.WriteLine("{0} changed to {1}", sSource, Path.Combine(targetPath, dateToday + targetExtension));
                        }
     
                        // Supprime le fichier de "sSource"
                        File.Delete(sSource);
     
                        if (!File.Exists(sSource))
                        {
                            Console.WriteLine("{0} deleted", sSource);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("The process failed: {0}", ex.ToString());
                    }
                }
     
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey(true);
            }
     
        }
     
    }
    Avez-vous une petite idée ?

    D'autre part, si vous avez des commentaires à faire sur ce petit morceau de code n'hésitez surtout pas ! J'aimerais faire les choses proprement, du moins apprendre à le faire ainsi.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Par défaut
    J'ai trouvé mon erreur...

    Elle se situe ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string[] sourceFileTab = Directory.GetFiles(sourcePath, sourceExtension);
    Finalement dans GetFiles je devais spécifié l'extension de mon fichier par "*.txt" et non par seulement ".txt".


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Action<> et ForEach sur tableau
    Par Papy214 dans le forum C#
    Réponses: 2
    Dernier message: 08/06/2011, 12h15
  2. boucles foreach imbriqué (tableau 3 colonnes)
    Par claire34 dans le forum Langage
    Réponses: 8
    Dernier message: 02/12/2010, 18h46
  3. Boucle foreach sur des tables SSIS 2008
    Par faten_ dans le forum SSIS
    Réponses: 3
    Dernier message: 17/08/2009, 11h19
  4. Application de Boucle foreach sur des tables comme source
    Par faten_ dans le forum Approche théorique du décisionnel
    Réponses: 0
    Dernier message: 06/08/2009, 12h38
  5. boucle foreach sur une liste de listes
    Par iblis dans le forum Langage
    Réponses: 10
    Dernier message: 02/05/2007, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo