Le processus ne peut pas accéder au fichier .... [Résolu]

Messages postés
107
Date d'inscription
lundi 24 mai 2004
Statut
Membre
Dernière intervention
5 mai 2010
- - Dernière réponse : noualach
Messages postés
1
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
9 mai 2011
- 9 mai 2011 à 17:35
Bonjour à tous,

j'ai un programme qui vérifie la présence de fichier dans un répertoire, puis les envoies par mail et ensuite les bouges.
Mais au moment de les bouger j'ai ceci : Le processus ne peut pas accéder au fichier

Malgré une attente de 10s dans le processus avant de le bouger (j'ai l'impression que mon propre process bloque l'accès à ce fichier)

Auriez-vous une solution

Merci,

Cyril 
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
107
Date d'inscription
lundi 24 mai 2004
Statut
Membre
Dernière intervention
5 mai 2010
3
Merci
En fait ce n'est pas le fichier que je devais libérer mais faire un dispose sur mon objet qui envoie le mail ...

je m'explique :

Avant je faisais comme ceci :

        /// <summary>
        /// Envoie un mail avec les informations précisées
        /// </summary>
        public void Send()
        {
            MailMessage mM = new MailMessage();
            mM.Subject = this.MailSubject;
            mM.IsBodyHtml = false;
            mM.Body = this.MailBody;

            mM.From = this.MailFrom;

            foreach (MailAddress ma in this.MailCC)
                mM.CC.Add(ma);

            foreach (MailAddress ma in this.MailBcc)
                mM.Bcc.Add(ma);

            foreach (MailAddress ma in this.MailTo)
                mM.To.Add(ma);

            foreach (String a in this.PathsAttach)
                mM.Attachments.Add(new Attachment(a));

            SmtpClient sC = new SmtpClient(this.ServerSmtp);
            sC.Send(mM);
        }

et Ajoutant la ligne en rouge cela fonctionne :

        /// <summary>
        /// Envoie un mail avec les informations précisées
        /// </summary>
        public void Send()
        {
            MailMessage mM = new MailMessage();
            mM.Subject = this.MailSubject;
            mM.IsBodyHtml = false;
            mM.Body = this.MailBody;

            mM.From = this.MailFrom;

            foreach (MailAddress ma in this.MailCC)
                mM.CC.Add(ma);

            foreach (MailAddress ma in this.MailBcc)
                mM.Bcc.Add(ma);

            foreach (MailAddress ma in this.MailTo)
                mM.To.Add(ma);

            foreach (String a in this.PathsAttach)
                mM.Attachments.Add(new Attachment(a));

            SmtpClient sC = new SmtpClient(this.ServerSmtp);
            sC.Send(mM);

            mM.Dispose();
        }

Merci de ta piste qui m'a bien fait penser à ça

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de toutphp
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
12
0
Merci
libérer le fichier correctement? tu dois ouvrir le fichier mais jamais le fermer. Ferme le correctement et ca devrait fonctionner
Commenter la réponse de leprov
Messages postés
1
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
9 mai 2011
0
Merci
[^^langue3]
Commenter la réponse de noualach