2010-02-16 5 views

Répondre

3

Il est parfaitement possible d'utiliser un MemoryStream au lieu d'un FileStream pour "écrire" des données sur un serveur FTP.

Du haut de ma tête: (juste un bout de code, j'Asume vous avez les choses FTP déjà)

var data = ASCIIEncoding.ASCII.GetBytes(yourXmlString); 
using (var dataStream = new MemoryStream(data)) 
using (var requestStream = ftpRequest.GetRequestStream()) 
{ 
    contentLength = dataStream.Read(buffer, 0, bufferLength); 

    while (contentLength != 0) 
    { 
      requestStream.Write(buffer,0,bufferLength); 
      contentLength = dataStream.Read(buffer, 0, bufferLength); 
    } 
} 

En d'autres termes, vous avez simplement besoin d'un ruisseau, n'a pas d'importance si elle est un FileStream ou MemoryStream

+0

Merci, fonctionne comme un charme –

+0

Je suis confus au sujet de la variable 'bufferLength'. Obtenez-vous la longueur du flux en octets, ou la longueur après que vous l'avez encodé en ASCII? –

+0

@Nick Ceci est juste une taille de tampon que vous choisissez. Combien d'octets voulez-vous stocker en mémoire à un moment donné. La valeur que vous choisissez peut dépendre du matériel que vous utilisez. Sur un PC, vous pouvez prendre un grand tampon (sauf si vous savez que les données seront petites) mais sur les périphériques embarqués (.NET MF), vous pouvez le garder <1024 octets. – TimothyP

Questions connexes