【问题标题】:Performance wise: File.Copy vs File.WriteAllText function in C#?性能方面:C# 中的 File.Copy 与 File.WriteAllText 函数?
【发布时间】:2013-05-19 16:12:37
【问题描述】:

我有字符串中的文件内容,我需要将相同的内容放在 3 个不同的文件中。 所以,我使用 C# 的File.WriteAllText() 函数将内容放入第一个文件中。 现在,对于其他 2 个文件,我有两个选择:

  1. 使用File.Copy(firstFile, otherFile)
  2. 使用File.WriteAllText(otherFile, content)

在性能方面哪个选项更好?

【问题讨论】:

  • 在我看来,Copy 将访问硬盘驱动器用于读取和写入目的,而 WriteAllText 将访问硬盘驱动器仅用于写入目的。但我需要知道,是否还有其他因素。
  • 看看这个possible duplicate
  • 请付出一些努力,您是否尝试在代码中添加StopWatch 并自己解决这个问题?

标签: c# file copy writealltext


【解决方案1】:

如果文件比较小,很可能会一直缓存在Windows磁盘缓存中,所以性能差异会很小,甚至可能File.Copy()更快(因为Windows会知道数据是一样的) , 而File.Copy() 调用了一个极其优化的 Windows API)。

如果您真的很在意,您应该对其进行检测并计时,尽管由于 Windows 文件缓存,计时可能完全不正确。

有一点可能对您很重要:如果您使用File.Copy(),将复制包括创建时间在内的文件属性。如果您以编程方式创建所有文件,则文件之间的创建时间可能会有所不同。

如果这对您很重要,您可能希望在复制后以编程方式设置文件属性,以便它们对所有文件都相同。

就我个人而言,我会使用File.Copy()

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 2011-01-31
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2011-04-18
    • 1970-01-01
    相关资源
    最近更新 更多