我正在尝试将我的文件(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);
}
首先回答你的问题。您正在写入该modifySQLFile()
方法中的错误文件。应该destFileName
代替fileName
File.WriteAllLines(fileName, fileTexts);
其次,假设此文件不是很大(<10MB),更好和更容易的方法是将原始文件的内容读入内存,修改内容,然后将其写入备份。不需要CopyFile()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句