string ftpServerIP = "192.9.123.123";
string ftpUserID = "user";
string ftpPassword = "pwd";
string fileName = "new.fr3";
string filePath = @"d:\new";
public bool getftpfile(string ftpServerIP, string ftpUserID, string ftpPassword, string filePath, string fileName)
{
if (checkftpfile(ftpServerIP, ftpUserID, ftpPassword, filePath, fileName) == false)
{
return false;
}
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
FileStream outputStream = new FileStream(filePath +@"\" + fileName,FileMode.Create); try
{
FtpWebRequest reqFTP; reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/IC" + fileName));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
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();
response.Close();
outputStream.Close();
return true;
}
catch (Exception ex)
{
outputStream.Close();
// string failed_message = "Failed:" + "\r\n" + ex.Message + "\r\n" + ex.InnerException.Message;
MessageBox.Show(ex.Message);
return false;
}
finally
{
outputStream.Close();
}
}
public bool checkftpfile(string ftpServerIP, string ftpUserID, string ftpPassword, string filePath, string fileName)
{
try
{
FtpWebRequest reqFTP; reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(@"ftp://" + ftpServerIP + "/IC"));
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.UseBinary = true;
reqFTP.KeepAlive = true;
reqFTP.UsePassive = true; reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); if (reader.ReadToEnd().IndexOf(fileName) > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
string failed_message = "Failed" + fileName + "\r\n" + ex.Message + "\r\n" + ex.InnerException.Message;
MessageBox.Show(failed_message);
return false;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货