试图重构这个FileStream .NET代码

时间:2012-07-05 05:31:00

标签: c# .net .net-4.0 stream refactoring

我有以下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);
}

它在做什么?

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

我觉得3行是过时的,有一种更好的方法可供使用。

是/否/可能?


编辑:.NET 4.0很好我:)

2 个答案:

答案 0 :(得分:4)

可能Stream.CopyTo适合你?

  

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

但是,对于它的价值,我不认为这个API在.NET 4.0之前就已存在。

答案 1 :(得分:1)

您可以查看File(System.IO),它提供了用于处理文件的静态方法;所以你的整个代码块都可以成为:

File.AppendAllText(path, contentToAppend);

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

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