C# 使用C将FTP文件从内存上载到远程站点#

C# 使用C将FTP文件从内存上载到远程站点#,c#,.net,ftp,C#,.net,Ftp,我正在处理一个需要将xml文件上传到远程FTP站点的项目 是否可以将xml字符串从内存保存到远程FTP站点。。。据我所见,我必须首先将文件写入本地磁盘,然后从磁盘读取,然后通过FTP传输到远程站点 我用的是c# 多谢各位 完全可以使用内存流而不是文件流将数据“写入”FTP服务器 在我的脑海中:(只是一段代码,我想你已经有FTP的东西了) 换句话说,您只需要一个流,不管它是文件流还是内存流我对bufferLength变量感到困惑。你得到的是以字节为单位的流的长度,还是ASCII编码后的长度?@Ni

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

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

我用的是c#


多谢各位

完全可以使用内存流而不是文件流将数据“写入”FTP服务器

在我的脑海中:(只是一段代码,我想你已经有FTP的东西了)


换句话说,您只需要一个流,不管它是文件流还是内存流

我对
bufferLength
变量感到困惑。你得到的是以字节为单位的流的长度,还是ASCII编码后的长度?@Nick这只是你选择的缓冲区大小。在任何给定时间,您希望在内存中存储多少字节。您选择的值可能取决于您使用的硬件。在PC上,您可以使用大的缓冲区(除非您知道数据会很小),但在嵌入式设备(.NET MF)上,您可能希望将其保留在1024字节以下。
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);
     }
}