2012-11-02 45 views

回答

3

你是否真的需要隨時在內存中的整個文件?如果沒有,我只是使用類似:

public static void CopyStream(Stream input, Stream output) 
{ 
    byte[] buffer = new byte[32 * 1024]; // Or whatever size you want 
    int read; 
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 
    { 
     output.Write(buffer, 0, read); 
    } 
} 

然後只需打開相應的每個文件:

using (Stream input = File.OpenRead(...), output = File.OpenWrite(...)) 
{ 
    CopyStream(input, output); 
} 
+0

隨機題外話:雖然我已經在規範中看到它,我不知道我'** ** ever **看到了「在野外」使用的多對象使用語句。 –

+0

@MarcGravell:同樣的;這很罕見 - 但我懷疑'Stream'很可能是一個幾乎正規的例子......除非你可能明確地迭代了兩個集合...... –

+0

或者可能是兩個數據庫之間的'SqlBulkCopy'(兩個'SqlConnection'等)。無論如何,我們離題了。 –