public static string DownloadFtp(string filePath, string fileName, string ftpServerIP, string ftpUserID, string ftpPassword)
{
FtpWebRequest reqFTP;
string fn = @"D:\\abc\" + Console.ReadLine(); ;
try
{
//filePath = < <The full path where the file is to be created.>>,
//fileName = < <Name of the file to be created(Need not be the name of the file on FTP server).>>
if (!Directory.Exists(fn))
{
Directory.CreateDirectory(fn);
}
FileStream outputStream = new FileStream(fn, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + filePath + "/" + fileName));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.KeepAlive = false;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 500000000;
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();
return "ftp://" + ftpServerIP + filePath + "/" + fileName + "--------" + fn;
}
catch (Exception ex)
{
// Logging.WriteError(ex.Message + ex.StackTrace);
// System.Windows.Forms.MessageBox.Show(ex.Message);
Console.WriteLine(ex.Message);
return "Exception ftp://" + ftpServerIP + filePath + "/" + fileName + "------"+ex.Message+"--------"+fn;
}
}
通过在FTP下载指定文件,并保存在本地d:/abc则个文件夹,提示未能找到路径“D:\abc\”的一部分,确认D:\abc\是存在的,不存在的情况也会自动新建,且已经手动设置abc文件夹权限为EveryOne所有权限