2011-04-20 115 views
29

我发现上传代码,此代码包含Stream.CopyTo方法。如何在.NET Framework 3.5上使用Stream.CopyTo?

例子:

file.Stream.CopyTo(requestStream); // .NET Framework 4.0 

我如何可以复制 “file.Stream” 到 “requestStream”?

+0

在.NET之前的版本4.0,你必须编写自己的方法复制流:http://stackoverflow.com/questions/230128/best-way-to-copy-between-two-stream-instances-c – 2011-04-20 13:14:01

回答

73

基本上,你不能。它只有在.NET 4中实现你可以自己写一个类似的方法,但...甚至使其扩展方法:

// Only useful before .NET 4 
public static void CopyTo(this Stream input, Stream output) 
{ 
    byte[] buffer = new byte[16 * 1024]; // Fairly arbitrary size 
    int bytesRead; 

    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) 
    { 
     output.Write(buffer, 0, bytesRead); 
    } 
} 
+1

+1,但请删除第二个“this”;-) – 2011-04-20 13:20:23

+0

@Robert:哎呀:)完成。 – 2011-04-20 13:24:15

+5

有一段时间我以为有一些非常棒的C#扩展方法功能我以前没有见过! – MattDavey 2011-04-20 13:25:32

相关问题