Которйы день бьюсь над этим кодом и ничего не фыходит!
файл вроде качаеться но совсем нитого размера и содержания которого должен быть.
в текстбоксе прописан полный путь к файлу на фтп в виде(фтп://tralyalya.com/qwe/asd/zxc.zip)
Помогите разобраться где ошибка и почему оно работает неправильно.
private void button1_Click(object sender, EventArgs e)
{
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(textBox1.Text);
ftpRequest.UseBinary = true;
FtpWebResponse ftpResonse = (FtpWebResponse)ftpRequest.GetResponse();
Stream responseStrem = ftpResonse.GetResponseStream();
StreamReader sr = new StreamReader(responseStrem);
string fileName = Path.GetFileName(ftpRequest.RequestUri.AbsolutePath);
FileStream fs = new FileStream("c:\\"+fileName, FileMode.Create);
byte[] buf = new byte[1024];
int byteRead;
while (true)
{
byteRead = responseStrem.Read(buf, 0, buf.Length);
if (byteRead == 0)
break;
fs.Write(buf, 0, buf.Length);
}
}
Скачай нормальный ftpclient. мелкомягких он немного глючит

пропробуй
www.enterprisedt.com
Здравствуйте, PhiberOptik, Вы писали:
PO>Которйы день бьюсь над этим кодом и ничего не фыходит!
PO>файл вроде качаеться но совсем нитого размера и содержания которого должен быть.
PO>в текстбоксе прописан полный путь к файлу на фтп в виде(фтп://tralyalya.com/qwe/asd/zxc.zip)
PO>Помогите разобраться где ошибка и почему оно работает неправильно.
У вас ошибка в коде.
PO>PO>private void button1_Click(object sender, EventArgs e)
PO>{
PO> FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(textBox1.Text);
PO> ftpRequest.UseBinary = true;
PO> FtpWebResponse ftpResonse = (FtpWebResponse)ftpRequest.GetResponse();
PO> Stream responseStrem = ftpResonse.GetResponseStream();
PO> StreamReader sr = new StreamReader(responseStrem);
PO> string fileName = Path.GetFileName(ftpRequest.RequestUri.AbsolutePath);
PO> FileStream fs = new FileStream("c:\\"+fileName, FileMode.Create);
PO> byte[] buf = new byte[1024];
PO> int byteRead;
PO> while (true)
PO> {
PO> byteRead = responseStrem.Read(buf, 0, buf.Length);
PO> if (byteRead == 0)
PO> break;
PO> fs.Write(buf, 0, buf.Length); // <-- Вот тут вы пишете в выходной стрим количество байт на размер буфера, а не не количество прочитанных, замените ее строчкой ниже
PO>
// fs.Write(buf, 0, byteRead); // это правильный вариант
PO> }
PO>}
PO>
Здравствуйте, zhech, Вы писали:
Z>Скачай нормальный ftpclient. мелкомягких он немного глючит
пропробуй www.enterprisedt.com
А можно подробнее как он глючит?
У меня в проекте были проблемы при скачке с ftp — недокачивало файл, если он чуть отличается от какого-то размера, уже и не помню

но то, что такое было — это точно, пришлось пользоваться сторонними FTPClientами
Здравствуйте, PhiberOptik, Вы писали:
PO>Здравствуйте, pt4h, Вы писали:
P>>У вас ошибка в коде.
PO>>> fs.Write(buf, 0, buf.Length); // <-- Вот тут вы пишете в выходной стрим количество байт на размер буфера, а не не количество прочитанных, замените ее строчкой ниже
PO>>> // fs.Write(buf, 0, byteRead); // это правильный вариант
PO>да тут моё упущение. по привычке со стрингом написал ленч к массиву (
PO>теперь всё корректно заработало, примного благодарен за ответ.
Тут есть чудные кнопки для спасибо