我需要将文件从一个 ftp 移动到另一个(当前使用 ftpwebrequest)都需要身份验证并具有不同的设置(超时、ascii、活动等)。将文件从一台服务器下载到本地服务器,然后上传到另一台服务器比仅复制文件要慢得多(如果存在的话,你会怎么做,重命名?)。感觉应该更快,但我不确定,我对文件复制或下载一无所知。
它们都是 .txt 或 .csv,每个大约 3-10 mb,所以数据量很大
您可以使用FXP将文件从 FTP-Server A 复制到 FTP-Server B。服务器和客户端都必须支持该功能。
有时我们需要从 FTP 服务器下载、上传文件。这是 C# 中 FTP 操作的一些很好的示例。你可以使用这个。它将帮助您制作一个 C# 程序来完全满足您的要求。
从 FTP 服务器下载文件
public void DownloadFile(stringHostURL, string UserName, string Password, stringSourceDirectory, string FileName, string LocalDirectory)
{
if(!File.Exists(LocalDirectory + FileName))
{
try
{
FtpWebRequestrequestFileDownload = (FtpWebRequest)WebRequest.Create(HostURL + “/” + SourceDirectory + “/” + FileName);
requestFileDownload.Credentials = new NetworkCredential(UserName, Password);
requestFileDownload.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponseresponseFileDownload = (FtpWebResponse)requestFileDownload.GetResponse();
StreamresponseStream = responseFileDownload.GetResponseStream();
FileStreamwriteStream = new FileStream(LocalDirectory + FileName, FileMode.Create);
intLength = 2048;
Byte[] buffer = new Byte[Length];
intbytesRead = responseStream.Read(buffer, 0, Length);
while(bytesRead > 0)
{
writeStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream.Read(buffer, 0, Length);
}
responseStream.Close();
writeStream.Close();
requestFileDownload = null;
responseFileDownload = null;
}
catch(Exception ex)
{
throwex;
}
}
}
希望它会帮助你。