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 :

Exploration Objets créer dynamiquement


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut Exploration Objets créer dynamiquement
    Bonjour a tous,
    je débute en C# et je n'arrive pas a trouver la liste d'un objet créer dynamiquement. Je créer comme ceci
    FileSystemWatcher fSystemWatcher = new FileSystemWatcher("C:\NOMDUREP", *);
    Je créer cela avec plusieurs répertoires diferents. Mon problème est d'explorer tout les FileSystemWatcher que j'ai créer pour par exemple changer le répertoire d'un... etc. J'ai réussi a explorer tout les Button de ma form par exemple mais pas les FileSystemWatcher. Quelqu'un pourrais m'eclaircir cela? Merci d'avance

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    je ne suis pas sur d'avoir compris !!!
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut
    désolé...
    Chaque foie que j'appuie sur mon button il fait sa et autre chose
    FileSystemWatcher fSystemWatcher = new FileSystemWatcher("C:\NOMDUREP", *);
    il me créer un nouveau fSystemWatcher à chaque foie... Et j'aimerai les explorer tous ceux que j'ai créer...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Points : 627
    Points
    627
    Par défaut
    Ben si tu fais ca dans le code du bouton, le FSW est balayé à la fin de la fonction donc tu vas avoir du mal à les trouver. =D

    Utilise une List, et ajoute les au fur et à mesure.

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    En fait je n'avais pas mal compris, je ne pouvais y croire !!!
    Enfin ce n'est pas grave.

    Au passage je te conseil fortement de reprendre les bases de la programmation car il est clair que tu ne sais aps ce que tu fais lorsque tu codes.
    Et à mon avis c'est problèmatique si tu veux continuer dans cette voix.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Au passage je te conseil fortement de reprendre les bases de la programmation .
    Décris nous ce que tu as déjà fait en prog, et surtout si tu connais la prog Objet (POO)

    [edit] Non pas toi ced, je m'appuyais sur ta citation
    Je m'adressais au prétendant à la C#pisation

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Non pas toi ced, je m'appuyais sur ta citation
    Je m'adressais au prétendant à la C#pisation
    Je n'en doutais pas
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut
    Ok je suis débutant... mais voila ce qui m'as fai arriver a la conclusion de la création d'un nouveau FileSystemWatcher à chaque click :
    private void button7_Click(object sender, EventArgs e)
    {
    Watch(@"C:\TEST1", "*", true, true, true, true, true, true, true);
    }


    void Watch(string Directory, string FilesFilter, bool ParentDirectories, bool EnableWatcher,
    bool WatchChanged, bool WatchRenamed, bool WatchCreated, bool WatchDeleted, bool WatchError)
    {
    // Création de l'objet watcher
    FileSystemWatcher fSystemWatcher = new FileSystemWatcher(Directory, FilesFilter);
    // Execution des méthodes dans le même treadh de la Form
    fSystemWatcher.SynchronizingObject = this;
    // Evenements surveillés
    if (WatchChanged) fSystemWatcher.Changed += new FileSystemEventHandler(OnChanged);
    if (WatchRenamed) fSystemWatcher.Renamed += new RenamedEventHandler(OnRenamed);
    if (WatchCreated) fSystemWatcher.Created += new FileSystemEventHandler(OnChanged);
    if (WatchDeleted) fSystemWatcher.Deleted += new FileSystemEventHandler(OnChanged);
    if (WatchError) fSystemWatcher.Error += new ErrorEventHandler(OnError);
    // Surveillance Sous-Répertoires
    fSystemWatcher.IncludeSubdirectories = ParentDirectories;
    // Surveillance
    fSystemWatcher.EnableRaisingEvents = EnableWatcher;
    }

    private void button8_Click(object sender, EventArgs e)
    {
    Watch(@"c:\TEST2", "*", true, true, true, true, true, true, true);
    }
    Si je clique sur les deux boutons, il va attendre un évenement d'un de ces répertoires... Peut-être je dit n'importe quoi mais ce serais sympas de m'expliquer ce que j'ai pas bien compris.... J'aimerai par exemple arrêter d'attendre un évenement du rép TEST2 après un moment...

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Ton objet fSystemWatcher est créer dans ta méthode, et meurt donc à la fin de ta méthode car il n'est plus référencé ensuite

    Je te demandais si tu connaissais la POO, car il y a une énOrme différence entre "programmer" et programmer "objet" Si tu n'as pas les bases objet, tu va galérer comme pas possible pour comprendre certains concepts.

    La prog objet c'est une philo, qui s'apprend avec un vocabulaire et des concepts spécifiques, et "sans" langage

    Si tu veux conserver chacun des FileSW, tu dois les ajouter à une Collection dans ta form : tant que ta form vivra, cette Collection vivra.
    Si tu souhaites te débarasser d'un FSW, tu le retire de ta collection : n'étant plus référencé, le GC va le collecter (et il mourra). Pour faire les choses encore plus proprement, tu le retires de la Collection et tu le "Dispose" : cela indiquera tout de suite au GC qu'il est bon à libérer (et donc surtout les ressources non managées qu'il utilise)

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Une première chose à apprendre : l'indentation du code.
    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
     
     
    private FileSystemWatcher fSystemWatcher;
     
    private void button7_Click(object sender, EventArgs e)
    {
            Watch(@"C:\TEST1", "*", true, true, true, true, true, true, true);
    }
     
     
    void Watch(string Directory, string FilesFilter, bool ParentDirectories, bool EnableWatcher, 
    bool WatchChanged, bool WatchRenamed, bool WatchCreated, bool WatchDeleted, bool WatchError)
    {
         // Création de l'objet watcher
         fSystemWatcher = new FileSystemWatcher(Directory, FilesFilter);
     
         // Execution des méthodes dans le même treadh de la Form
         fSystemWatcher.SynchronizingObject = this;
     
         // Evenements surveillés
         if (WatchChanged)
         {
              fSystemWatcher.Changed += new FileSystemEventHandler(OnChanged);
         }
     
         if (WatchRenamed)
         {
              fSystemWatcher.Renamed += new FileSystemEventHandler(OnRenamed);
         }
     
         if (WatchCreated)
         {
              fSystemWatcher.Created += new FileSystemEventHandler(OnChanged);
         }
     
         if (WatchDeleted)
         {
              fSystemWatcher.Deleted += new FileSystemEventHandler(OnChanged);
         }
     
         if (WatchError)
         {
              fSystemWatcher.Error += new FileSystemEventHandler(OnError);
         }
     
         // Surveillance Sous-Répertoires
         fSystemWatcher.IncludeSubdirectories = ParentDirectories;
         // Surveillance
         fSystemWatcher.EnableRaisingEvents = EnableWatcher;
    }
     
    private void button8_Click(object sender, EventArgs e)
    {
         Watch(@"c:\TEST2", "*", true, true, true, true, true, true, true); 
    }
    C'est mieux ainsi.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/09/2011, 16h53
  2. [Dojo] dojo 1.5.0 Créer dynamiquement autant d'objets dijit.form.dateTextBox que nécessaire
    Par Dendrite dans le forum Bibliothèques & Frameworks
    Réponses: 18
    Dernier message: 30/08/2011, 10h35
  3. Utiliser un objet créer dynamiquement
    Par Clydopathe dans le forum VB.NET
    Réponses: 6
    Dernier message: 04/06/2009, 17h18
  4. Créer dynamiquement des objets Java
    Par choko83 dans le forum Débuter avec Java
    Réponses: 15
    Dernier message: 02/05/2008, 14h53
  5. Réponses: 1
    Dernier message: 17/04/2007, 14h43

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