0

我有以下Stream代码。我觉得它真的又旧又丑,应该有一种更清洁的方法来做到这一点。

// Write the current chunk to the stream.
using (var fileStream = new FileStream(tempPath, currentChunk == 0 ? 
                                                     FileMode.Create : 
                                                     FileMode.Append))
{
    var buffer = new byte[uploadedFile.Length];
    uploadedFile.Read(buffer, 0, buffer.Length);
    fileStream.Write(buffer, 0, buffer.Length);
}

它在做什么?

我分块上传文件。所以我们要么创建一个新文件(当我们位于第一个块时,即块 == 0).. 要么我们将块数据附加到现有文件中。

我觉得这 3 行已经过时了,有更好的方法可以使用。

是/否/也许?


编辑:.NET 4.0 对我来说很好:)

4

2 回答 2

4

可能Stream.CopyTo对你有用吗?

http://msdn.microsoft.com/en-us/library/system.io.stream.copyto.aspx

尽管如此,我认为这个 API 直到 .NET 4.0 才存在。

于 2012-07-05T05:33:05.230 回答
1

您可以查看提供静态方法来处理文件的File(System.IO) ;所以你的整个代码块可能变成这样:

File.AppendAllText(path, contentToAppend);

还有其他方法,如WriteAllBytes(...), WriteAllText(...), 或ReadAllText(...)

供参考:http: //msdn.microsoft.com/en-us/library/system.io.file.aspx

于 2012-07-05T06:05:24.167 回答