源代码如下:
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();
}
}
}