ファイル(fileName)をフォルダコールバックアップにコピーしようとしています。ファイルがバックアップフォルダに正常にコピーされると、modifySQLFile()はバックアップフォルダからファイルを読み込み、ファイルを更新し、元のファイル(fileName)を通常の場所に保持します。プログラムが2回目に実行されると、元のファイルが読み込まれ、別のコピーを作成してバックアップし、コピーしたファイルを更新して前のコピーしたファイルを上書きします。ファイルをコピー、作成、更新して元のファイルをC#に保持します
しかし、私のコードが間違っていて、既存のファイルを上書きする方法がわかりません。親切にも、私がこれを初めて知った時に私を助けてください。
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);
}
既存のファイルを上書きする最も簡単な方法は、まず古いファイルを削除してから新しいファイルに置き換えることです。 – sorifiend
あなたはあなたが見ているエラーをより詳細に記述できますか?上記のコードで –
を実行すると、すべて正常に動作しますが、フォルダ内のファイルをチェックすると、そこにはありますが、バックアップフォルダには更新されません。ただし、代わりに元のファイルが更新されます。私は2回目を実行すると、何も更新されないようです。 – Stella