【问题标题】:how to move files from one ftp to another如何将文件从一个 ftp 移动到另一个
【发布时间】:2013-08-25 16:17:41
【问题描述】:

我需要将文件从一个 ftp 移动到另一个(当前使用 ftpwebrequest),两者都需要身份验证并具有不同的设置(超时、ascii、活动等)。将文件从一台服务器下载到本地服务器,然后上传到另一台服务器比仅复制文件要慢得多(如果存在的话,你会怎么做,重命名?)。感觉应该会更快,但我不确定,我对文件复制或下载一无所知。

它们都是 .txt 或 .csv,每个大约 3-10 mb,所以数据量很大

【问题讨论】:

  • 从服务器 A 下载到运行您的应用程序的机器。然后上传到服务器B...
  • 取决于服务器之间管道的大小。您正在处理多少个文件,它们有多大?

标签: c# ftp


【解决方案1】:

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

【讨论】:

  • 它们非常大,大约有 50 到 100 个文件左右。我一直在做一些搜索,似乎不管他们怎么称呼它,它都是某种下载然后上传
【解决方案2】:

有时我们需要从 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

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2018-03-28
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多