.net 4.5 中流复制的方法:Stream.CopyToAsync

public Task CopyToAsync(
    Stream destination
)

示例:

string StartDirectory = @\"c:\\Users\\exampleuser\\start\";            
string EndDirectory = @\"c:\\Users\\exampleuser\\end\";            
foreach (string filename in Directory.EnumerateFiles(StartDirectory))
            {               
             using (FileStream SourceStream = File.Open(filename, FileMode.Open))
               {                  
                  using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf(\'\\\\\'))))
                    {                     
                       await SourceStream.CopyToAsync(DestinationStream);
                    }
                }
            }


.net 4.0 中流复制的方法:Stream.CopyTo

MemoryStream destination = new MemoryStream();
using (FileStream source = File.Open(@\"c:\\temp\\data.dat\",FileMode.Open))
{
    source.CopyTo(destination);
}

.net 3.5及以下版本 流的复制 需要自己写代码实现

流复制方法一:

public static void CopyStream(Stream input, Stream output) {     
    byte[] buffer = new byte[32768];     
    long TempPos = input.Position;     
    while (true)         
    {         
        int read = input.Read (buffer, 0, buffer.Length);         
        if (read <= 0) break;         
        output.Write (buffer, 0, read);     
    }     
    input.Position = TempPos;// or you make Position = 0 to set it at the start }


 

流复制方法二:

public static void CopyStream(Stream input, Stream output){
  using (StreamReader reader = new StreamReader(input))
  using (StreamWriter writer = new StreamWriter(output))
  {
    writer.Write(reader.ReadToEnd());
  }}

 

收藏 打印