Проясните ситуацию со Stream'ами
От: Аноним  
Дата: 20.07.10 13:22
Оценка:
Есть метод, который делает загрузку файла с FTP.
Мне этот файл на диске не нужен — я его решил загрузить в MemoryStream:


//приготовление запроса...
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.GetResponseStream(); // тут мы имеем объект типа Stream


Если сделать что то типа:
MemoryStream s = response.GetResponseStream();
то в s нету ничего.
А если же сделать
return response.GetResponseStream();
и использовать результат метода в другом месте — то все работает.
Я тут чегото недопонимаю. Как мне в MemoryStream засунуть результат response.GetResponseStream()?
Re: Проясните ситуацию со Stream'ами
От: TK Лес кывт.рф
Дата: 20.07.10 13:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я тут чегото недопонимаю. Как мне в MemoryStream засунуть результат response.GetResponseStream()?


Надо прочитать все содержимое из response.GetResponseStream и записать его в MemoryStream...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Проясните ситуацию со Stream'ами
От: _FRED_ Черногория
Дата: 20.07.10 13:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть метод, который делает загрузку файла с FTP.

А>Мне этот файл на диске не нужен — я его решил загрузить в MemoryStream:
А>//приготовление запроса...
А>FtpWebResponse response = (FtpWebResponse)request.GetResponse();
А>response.GetResponseStream(); // тут мы имеем объект типа Stream


Тут мы имеем стрим, с помощью которого будем читать данные с сервера.

А>Если сделать что то типа:

А>MemoryStream s = response.GetResponseStream();

А>то в s нету ничего.

Это как-бы не должно скомпилироваться.

А>А если же сделать

А>return response.GetResponseStream();

А>и использовать результат метода в другом месте — то все работает.

Удивительно: обычно сетевые стримы сильно отличаются от, например, даже файловых, не то что от Memory.

А>Я тут чегото недопонимаю. Как мне в MemoryStream засунуть результат response.GetResponseStream()?


Скопировать. Читать из серверного стрима и писать в MemoryStream. Потом наружу отдать Memory.
Help will always be given at Hogwarts to those who ask for it.
Re: Проясните ситуацию со Stream'ами
От: Lloyd Россия  
Дата: 20.07.10 13:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне этот файл на диске не нужен — я его решил загрузить в MemoryStream:


А зачем его засовывать в MemoryStream? Работайте со стримом, возвращаемым response.GetResponseStream.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.