Tuesday, July 27, 2010

FTP File Download C#.NET

You can download files from FTP using following custom Method
public static string FTPDownload(string FTPURL, string FileName, string SavingPathonServer, string UserName, string Password)
{
/*
* FTPAddress - URL or IP address of the FTP server
* FileName - Name of the File which is going to upload
* SavingPathonServer - This method will save Specifide file in to the WebServer you have to give the path to save on web server
* UserName - User name for the FTP account
* Password - FTP Password
*/

byte[] bteDownloadedData = new byte[0];
string strServerPathToFile = string.Empty;
try
{

System.Net.FtpWebRequest objWebRequest = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create(string.Format("{0}/{1}", FTPURL, FileName));
objWebRequest.Method = System.Net.WebRequestMethods.Ftp.GetFileSize;
objWebRequest.Credentials = new System.Net.NetworkCredential(UserName, Password);
objWebRequest.UsePassive = true;
objWebRequest.UseBinary = true;
objWebRequest.KeepAlive = true;

int intDataLength = (int)objWebRequest.GetResponse().ContentLength;


objWebRequest = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create(string.Format("{0}/{1}", FTPURL, FileName));
objWebRequest.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;
objWebRequest.Credentials = new System.Net.NetworkCredential(UserName, Password);
objWebRequest.UsePassive = true;
objWebRequest.UseBinary = true;
objWebRequest.KeepAlive = false;

System.Net.FtpWebResponse objFTPWebResponse =(System.Net.FtpWebResponse)objWebRequest.GetResponse();
System.IO.Stream objStreamReader = objFTPWebResponse.GetResponseStream();

System.IO.MemoryStream objMemStream = new System.IO.MemoryStream();
byte[] memBuffer = new byte[1024];

int intBytesRead = 0;

while (true)
{
intBytesRead = objStreamReader.Read(memBuffer, 0, memBuffer.Length);
if (intBytesRead != 0)
{
objMemStream.Write(memBuffer, 0, intBytesRead);
}
else
{
break;
}

}

bteDownloadedData = objMemStream.ToArray();
objStreamReader.Close();
objMemStream.Close();
objFTPWebResponse.Close();

if (bteDownloadedData != null && bteDownloadedData.Length != 0)
{
System.IO.FileStream objFileStream = new System.IO.FileStream(SavingPathonServer, System.IO.FileMode.Create);
objFileStream.Write(bteDownloadedData, 0, bteDownloadedData.Length);
objFileStream.Close();
}
return SavingPathonServer;

}
catch (Exception Ex)
{
throw Ex;
}

}


}
}

Did you get this Error Exception? “System.Security.SecurityException: Request for the permission of type 'System.Net.WebPermission, …..” Then your have to read this Post too

Your will be able to download a good windows application to the this purpose from http://www.vcskicks.com/csharp_ftp_upload.php that was really help full to me thanks should goes to the people who ever wrote that article




No comments:

Post a Comment