Difference de code... [Résolu]

Signaler
Messages postés
21
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
29 octobre 2007
-
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
-
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

Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
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.