Ftp客户端传大文件的问题(在线等待)
我在编写一个Ftp客户端时,下载大文件(象电影)等时,下下来的电影文件文件大小和服务器上的一样大,就是只可以放几分钟,后面的就没有图形。不知道为什么,但是象图形文件、word等几M的文件还是没有问题,希望各位帮忙解决?
源代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.10/crazy.stone.2006.rmvb");
req.Credentials = new NetworkCredential("xzl", "123");
req.Method = WebRequestMethods.Ftp.GetFileSize;
FtpWebResponse resp = (FtpWebResponse)req.GetResponse();
long fileSize = resp.ContentLength;
resp.Close();
req = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.10/crazy.stone.2006.rmvb");
req.Credentials = new NetworkCredential("xzl", "123");
req.Method = WebRequestMethods.Ftp.DownloadFile;
resp = (FtpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
FileStream file = new FileStream("e:\\crazy.stone.2006.rmvb" , FileMode.OpenOrCreate);
long offset = 0;
int max = 512;
byte[] data = new byte[max];
while ((fileSize - offset) >= max)
{
stream.Read(data, 0, max);
file.Write(data, 0, max);
offset += max;
}
if ((fileSize - offset) > 0)
{
stream.Read(data, 0, (int)(fileSize - offset));
file.Write(data, 0, (int)(fileSize - offset));
}
stream.Close();
resp.Close();
}
}
}