如何将文件从一个ftp移动到另一个ftp

时间:2013-08-22 19:03:31

标签: c# ftp

我需要将文件从一个ftp移动到另一个(目前使用ftpwebrequest),这两个文件都需要身份验证并具有不同的设置(超时,ascii,活动等)。将文件从一个文件下载到本地服务器,然后上传到另一个文件,而不仅仅是复制文件(如果存在甚至,你会怎么做,重命名?)。感觉它应该更快但我不确定,我不了解文件复制或下载。

它们都是.txt或.csv,大部分都是3-10 MB左右,所以数据很多

2 个答案:

答案 0 :(得分:0)

您可以使用FXP将文件从FTP服务器A复制到FTP服务器B.服务器和客户端都必须支持该功能。

答案 1 :(得分:0)

有些时候我们需要从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;
                }
            }
        }

Some Good Examples

希望它会对你有所帮助。