【问题标题】:Upload FTP file to remote site from memory using C#使用 C# 将 FTP 文件从内存上传到远程站点
【发布时间】:2010-02-16 08:04:06
【问题描述】:

我正在处理一个需要将 xml 文件上传到远程 FTP 站点的项目。

是否可以将 xml 字符串从内存保存到远程 FTP 站点? ...从我所见,我必须先将文件写入本地磁盘,然后从磁盘和 FTP 读取到远程站点。

我正在使用 c#。

谢谢。

【问题讨论】:

    标签: c# .net ftp


    【解决方案1】:

    完全可以使用 MemoryStream 而不是 FileStream 将数据“写入”到 FTP 服务器。

    从我的头顶:(只是一段代码,我假设你已经有了 FTP 的东西)

    var data = ASCIIEncoding.ASCII.GetBytes(yourXmlString);
    using (var dataStream = new MemoryStream(data))
    using (var requestStream = ftpRequest.GetRequestStream())
    {
         contentLength = dataStream.Read(buffer, 0, bufferLength);
    
         while (contentLength != 0)
         {
              requestStream.Write(buffer,0,bufferLength);
              contentLength = dataStream.Read(buffer, 0, bufferLength);
         }
    }
    

    换句话说,你只需要一个流,不管它是 FileStream 还是 MemoryStream

    【讨论】:

    • 我对@9​​87654322@ 变量感到困惑。您是以字节为单位的流长度,还是 ASCII 编码后的长度?
    • @Nick 这只是您选择的缓冲区大小。您想在任何给定时间在内存中存储多少字节。您选择的值可能取决于您使用的硬件。在 PC 上,您可以使用大缓冲区(除非您知道数据会很小),但在嵌入式设备 (.NET MF) 上,您可能希望将其保持在
    猜你喜欢
    • 2012-02-07
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2013-02-22
    • 2016-08-17
    相关资源
    最近更新 更多