In this example, i have told you how to download file from FTP using C#/VB.NET.Let's start
Namespaces required:
C#
using System.Net;using System.IO;
VB.NET
Imports System.NetImports System.IO
Following is the code of download file from the FTP Server.
C#
private void Download(string filePath, string fileName) { FTPSettings.IP = "DOMAIN NAME"; FTPSettings.UserID = "USER ID"; FTPSettings.Password = "PASSWORD"; FtpWebRequest reqFTP = null; Stream ftpStream = null; try { FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create); reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + FTPSettings.IP + "/" + fileName)); reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; reqFTP.UseBinary = true; reqFTP.Credentials = new NetworkCredential(FTPSettings.UserID, FTPSettings.Password); FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); 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 ex) { if (ftpStream != null) { ftpStream.Close(); ftpStream.Dispose(); } throw new Exception(ex.Message.ToString()); } } public static class FTPSettings { public static string IP { get; set; } public static string UserID { get; set; } public static string Password { get; set; } }
VB.NET
Private Sub Download(ByVal filePath As String, ByVal fileName As String) FTPSettings.IP = "DOMAIN NAME" FTPSettings.UserID = "USER ID" FTPSettings.Password = "PASSWORD" Dim reqFTP As FtpWebRequest = Nothing Dim ftpStream As Stream = Nothing Try Dim outputStream As New FileStream(filePath + "\" + fileName, FileMode.Create) reqFTP = DirectCast(FtpWebRequest.Create(New Uri("ftp://" + FTPSettings.IP + "/" + fileName)), FtpWebRequest) reqFTP.Method = WebRequestMethods.Ftp.DownloadFile reqFTP.UseBinary = True reqFTP.Credentials = New NetworkCredential(FTPSettings.UserID, FTPSettings.Password) Dim response As FtpWebResponse = DirectCast(reqFTP.GetResponse(), FtpWebResponse) ftpStream = response.GetResponseStream() Dim cl As Long = response.ContentLength Dim bufferSize As Integer = 2048 Dim readCount As Integer Dim buffer As Byte() = New Byte(bufferSize - 1) {} readCount = ftpStream.Read(buffer, 0, bufferSize) While readCount > 0 outputStream.Write(buffer, 0, readCount) readCount = ftpStream.Read(buffer, 0, bufferSize) End While ftpStream.Close() outputStream.Close() response.Close() Catch ex As Exception If ftpStream IsNot Nothing Then ftpStream.Close() ftpStream.Dispose() End If Throw New Exception(ex.Message.ToString()) End Try End Sub Public NotInheritable Class FTPSettings Private Sub New() End Sub Public Shared Property IP() As String Get Return m_IP End Get Set(ByVal value As String) m_IP = Value End Set End Property Private Shared m_IP As String Public Shared Property UserID() As String Get Return m_UserID End Get Set(ByVal value As String) m_UserID = Value End Set End Property Private Shared m_UserID As String Public Shared Property Password() As String Get Return m_Password End Get Set(ByVal value As String) m_Password = Value End Set End Property Private Shared m_Password As String End Class
Download
DownloadFile.zip (1.24 kb)
You can use Download function in both asp.net and Windows Form csharp/VB.Net Application.