复制,创建和更新文件,将原始文件保留在C#中

斯特拉

我正在尝试将我的文件(fileName)复制到文件夹调用备份中。将文件成功复制到备份文件夹后,modifySQLFile()将从备份文件夹读取文件并更新其中的文件,并将原始文件(fileName)保留在通常位置。程序第二次运行时,它将读取原始文件并创建另一个副本以备份并更新复制的文件并覆盖先前复制的文件。

但是,我不确定我的代码出了什么问题以及如何覆盖现有文件。请帮我,因为我是新来的。

public string fileName = "DEPOT-Pub_Sub_Combined (wo CardHolder).sql";

private void modifySQLFile()
{
    CopyFile();

    string[] fileTexts = File.ReadAllLines(@"backup\DEPOT-Pub_Sub_Combined (wo CardHolder).sql");


    int counter = 0;

    //File processing 
    foreach (string line in fileTexts)
    {
        //only process non-comments line
        if (line.StartsWith("--") == false)
        {
            //replace instances of server name
            if (line.Contains(SERVERNAME) == true)
            {
                fileTexts[counter] = fileTexts[counter].Replace(SERVERNAME, textBox1.Text);            
            }

            if (line.Contains(ACCESSID) == true)
            {
                fileTexts[counter] = fileTexts[counter].Replace(ACCESSID, textBox2.Text);
            }

            if(line.Contains(NETWORKID) == true)
            {
                fileTexts[counter] = fileTexts[counter].Replace(NETWORKID, textBox2.Text);
            }


        }
        counter++;
    }
    //update file
    File.WriteAllLines(fileName, fileTexts);

    MessageBox.Show("Completed!");
}

private void CopyFile()
{

    string targetPath = @"backup";
    string destFile = Path.Combine(targetPath, fileName);

    if(!Directory.Exists(targetPath))
    {
        Directory.CreateDirectory(targetPath);
    }

   File.Copy(fileName, destFile, true);
}
杰夫·庞(Jeff Pang)

首先回答你的问题。您正在写入该modifySQLFile()方法中的错误文件应该destFileName代替fileName

File.WriteAllLines(fileName, fileTexts);

其次,假设此文件不是很大(<10MB),更好和更容易的方法是将原始文件的内容读入内存,修改内容,然后将其写入备份。不需要CopyFile()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

取消提交已提交的更改,但将新文件保留在索引中

取消链接,但文件日期大小保留在新文件上

如何删除所有文件/文件夹,但将根文件夹保留在C#中

将特定文件复制到新文件夹,同时保留原始子目录树

更新文件中的记录(C ++)

如何在iOS上的更新之间将大文件保留在缓存中?

将风味配置保留在单独的.gradle文件中

将最后n行复制到新文件,然后从原始文件中删除n行

Msys:如何将STDERR保留在屏幕上,同时将STDOUT和STDERR复制到文件中

Makefile:自动编译所有c文件,将.o文件保留在单独的文件夹中

将 HDFS Hadoop 中的最后 5 个更新文件复制到 bash 中的目标文件夹

在CentOS上创建和挂载新文件系统

查找文件,将其转换并保留在 bash 的原始目录中

创建新文件?

JavaScript 将原始数组保留在递归函数中

如何通过Language Server Extension在工作区中创建和编辑新文件

如何将多个文件中的行复制到一个新文件中并保留文件名?

在 C 中创建新文件时出现分段错误

如何从华硕 BIOS 更新文件中解压原始二进制文件?

在 ASP .NET CORE 中更新 Web 应用程序替换文件或删除文件,如何在更新时将文件保留在应用程序中

基于 C 中的密钥更新文件

CLI复制后,文件元数据未保留在S3中

C++,将目录中的所有csv文件复制到一个新文件

更新文件时如何在载波中保留相同的文件名(在Rails中)

在jar中创建新文件?

删除子文件夹,但将文件保留在Windows中以保存Google照片

将HDD文件保留在虚拟内存中,而无需更改文件路径

grunt uglify将缩小文件保留在与src相同的文件夹中

R CMD构建将已编译的.o文件保留在src文件夹中