【问题标题】:c# compare 2 files - create and update functionsc#比较2个文件-创建和更新函数
【发布时间】:2013-08-01 08:56:11
【问题描述】:

这是我第一次编写函数文件操作的代码。我需要将旧文件与新文件进行比较。如果旧文件名等于新文件名,则需要覆盖(更新)。如果不相等,则创建一个新文件名。如何以简单且最佳的方式做到这一点?

public void FileCreateOrOverwritten(string file)
{
    try
    {
        if (File.Exists(file))
        {
            if (file == newFile)
            {
                //how to replace old file with a new one with new data (xml document)
                //need to use filestream
            }
            else
            {
                //how to create a new file with new data (xml document)
            }

        }
        .
        .
        .
    }

【问题讨论】:

标签: c# xml filesystems filestream


【解决方案1】:

要(覆盖)写入文件,

using (var writer = File.CreateText(file))
{
    for (...)
    {
        writer.WriteLine(...);
    }
}

然后,您无需决定是要覆盖旧的还是要创建新的。 来自docs

"这个方法等价于StreamWriter(String, Boolean) 将 append 参数设置为 false 的构造函数重载。如果 path 指定的文件不存在,它被创建。如果文件没有 存在,其内容被覆盖”

如果您对此不熟悉,请注意using

【讨论】:

  • 而之所以应该使用using,是因为它保证在程序退出using块后,会调用writer的Dispose方法
  • 好吧...我不喜欢这种方式。我认为最好先删除旧文件,然后如果它们的文件名相同,则将新文件移入...
  • @user1358072 随心所欲。覆盖实际上会为您删除旧的,但如果您宁愿自己做,那很奇怪,但这是您的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
相关资源
最近更新 更多