向FTP服務器下載文件的簡單實例


string?filePath?=?"d:\\";
????????????string?fileName?=?"lhking.txt";?//文件下載之后要保存的路徑和文件名
????????????FtpWebRequest?reqFTP;
????????????try
????????????{
????????????????FileStream?outputStream?=?new?FileStream(filePath?+"\\"?+?fileName,?FileMode.Create);
????????????????string?filename?=?"ip.txt";
????????????????string?ftpServerIP?=?"222.76.217.24";
????????????????reqFTP?=?(FtpWebRequest)FtpWebRequest.Create(new?Uri("ftp://"?+ftpServerIP?+?"/"?+?filename));
????????????????reqFTP.Method?=?WebRequestMethods.Ftp.DownloadFile;
????????????????reqFTP.UseBinary?=?true;
????????????????reqFTP.Credentials?=?new?NetworkCredential("l","l");
????????????????FtpWebResponse?response?=?(FtpWebResponse)reqFTP.GetResponse();
????????????????Stream?ftpStream?=?response.GetResponseStream();
????????????????long?cl?=?response.ContentLength;
????????????????int?bufferSize?=?2048;
????????????????int?readCount;
????????????????byte[]?buffer?=?new?byte[bufferSize];
????????????????readCount?=?ftpStream.Read(buffer,?0,?bufferSize);
????????????????while?(readCount?>?0)
????????????????{
????????????????????outputStream.Write(buffer,?0,?readCount);
????????????????????readCount?=?ftpStream.Read(buffer,?0,?bufferSize);
????????????????}
????????????????ftpStream.Close();
????????????????outputStream.Close();
????????????????response.Close();
????????????}
????????????catch?(Exception?err)?
????????????{?
????????????????MessageBox.Show(err.Message,"Download?Error");
????????????}
向FTP服務器上傳文件的簡單實例


string?filename?=?"ip.txt";
????????????string?ftpServerIP?=?"222.76.217.24";
????????????FileInfo?fileInf?=?new?FileInfo(filename);
????????????string?uri?=?"ftp://"?+?ftpServerIP?+?"/"?+?fileInf.Name;
????????????FtpWebRequest?reqFTP;
????????????reqFTP?=?(FtpWebRequest)FtpWebRequest.Create(new?Uri("ftp://"?+?ftpServerIP?+?"/"?+?fileInf.Name));
????????????reqFTP.Credentials?=?new?NetworkCredential("l","l");
????????????reqFTP.KeepAlive?=?false;
????????????reqFTP.Method?=?WebRequestMethods.Ftp.UploadFile;
????????????reqFTP.UseBinary?=?true;
????????????reqFTP.ContentLength?=?fileInf.Length;
????????????int?buffLength?=?2048;
????????????byte[]?buff?=?new?byte[buffLength];
????????????int?contentLen;
????????????FileStream?fs?=?fileInf.OpenRead();
????????????try
????????????{
????????????????Stream?strm?=?reqFTP.GetRequestStream();
????????????????contentLen?=?fs.Read(buff,?0,?buffLength);
????????????????while?(contentLen?!=?0)
????????????????{
????????????????????strm.Write(buff,?0,?contentLen);
????????????????????contentLen?=?fs.Read(buff,?0,?buffLength);
????????????????}
????????????????strm.Close();
????????????????fs.Close();
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????MessageBox.Show(ex.Message,?"Upload?Error");
????????????}
如果想把Stream轉換為字符串的話,下面這樣寫就行了。
??????????????? StreamReader sr = new StreamReader(ftpStream, Encoding.Default);
??????????????? string str = sr.ReadToEnd();