【问题标题】:Trying to refactor this FileStream .NET code试图重构这个 FileStream .NET 代码
【发布时间】:2012-07-05 05:30:59
【问题描述】:

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

它在做什么?

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

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

是/否/也许?


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

【问题讨论】:

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


【解决方案1】:

Stream.CopyTo 可能适合你吗?

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

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

【讨论】:

    【解决方案2】:

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

    File.AppendAllText(path, contentToAppend);
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多