Difference de code...

Résolu
tracks62 Messages postés 21 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 29 octobre 2007 - 21 juin 2006 à 11:52
dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 - 21 juin 2006 à 12:41
J'aimerais arriver a comprendre quelque chose... J'ai deux bout de code qui me permet d'attaché un fichier joint a mail qui proviens d'un tableau de byte.

le 1er code fonctionne :
MemoryStream m = new MemoryStream(dt, 0, dt.Length);
Attachment maPieceJointe = new Attachment(m, "test.jpg");

le 2eme code ne fonctionne pas et pourtant il me semble identique...
MemoryStream m = new MemoryStream();
m.SetLength(dt.Length);
m.Write(dt, 0, dt.Length);
Attachment maPieceJointe = new Attachment(m, "test.jpg"); // a cet endroit la, m est bien rempli...

quelqu'un peut-il m'expliquer la raison...

1 réponse

dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 3
21 juin 2006 à 12:41
Salut,

A priori, je suppose que c'est à cause de la position courante dans le MemoryStream : dans le premier code, la position courante est au début du flux, alors que dans le second, elle est juste après le tableau de bytes ajoutés dans le flux par la méthode Write.

Si c'est bien là la raison, il doit suffire dans le second code d'ajouter
<hr />m.Seek(0, SeekOrigin.Begin);<hr />
juste après l'écriture du tableau afin de se replacer au début du flux, et donc permettre au contructeur de Attachment d'en lire le contenu.
3
Rejoignez-nous