Bonjour,
Je réalise en ce moment un programme qui permet d'envoyer un fichier par mail, cependant je rencontre un soucis quand je veux utiliser la pièce jointe !:
Voici mon code suivi de l'explication :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public static void Send() {
try {
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com", 587);
mail.From = new MailAddress("adresseemail@gmail.com");
mail.To.Add("adresseemail@gmail.com");
mail.Subject = "Fichier" + Environment.UserName + DateTime.Now;
mail.Body = "Fichier";
Attachment attachment = new Attachment(Application.StartupPath + @"\fichier.txt");
mail.Attachments.Add(attachment);
SmtpServer.Credentials = new NetworkCredential("adresseemail@gmail.com", "123456789");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
attachment.Dispose();
File.WriteAllText(Application.StartupPath + @"\fichier.txt", "");
}
catch (Exception e) {
Console.WriteLine(e);
}
} |
Après l'envoie du fichier, je souhaite vider le fichier texte par la ligne :
File.WriteAllText(Application.StartupPath + @"\fichier.txt", "");
Seulement je rencontre une exception comme quoi le fichier est utilisé par un autre processus, je pense que c'est dû à l'utilisation du fichier pour l'envoie (que je reçois parfaitement).
J'aimerai faire en sorte à ce que le fichier soit vide une fois qu'il n'est plus utilisé, comment puis-je faire dans mon cas ?
Je pourrai bien mettre une boucle et que quand l'exception n'est pas présente c'est que c'est OK mais je trouve cette solution trop 'bricolage'.
Peut-être qu'il y a plus simple. Si quelqu'un peut m'indiquer ... Merci !
Partager