我有一個奇怪的問題,我似乎無法弄清楚。Regex.Replace()在更改文件名時出現問題
我的文件名是這樣的:
DER 1513016-3.020F.NCF.
我希望能夠將其改爲:
DER 1513016-3.020H.NCF
有時文件名可以是這個問題,以及:
DER 1513016-3.020F_NEW.NCF
哪些會變爲:
DER 1513016-3.020H_NEW.NCF
這是我的代碼做到這一點:
OpenFileDialog fDialog = new OpenFileDialog();
fDialog.Title = "Open";
fDialog.Filter = "NCF files (*.ncf)|*.ncf|All files (*.*)|*.*";
fDialog.InitialDirectory = "C:\\Program Files";
if (fDialog.ShowDialog() == DialogResult.OK)
{
string newfilename;
string fileext = Path.GetExtension(fDialog.FileName);
newfilename = Regex.Replace(fDialog.FileName, "F.NCF", "H.NCF");
newfilename = Regex.Replace(fDialog.FileName, "F_NEW.NCF", "H_NEW.NCF");
}
這就是事情變得怪異。代碼現在工作的方式,它不會改變文件名以DER 1513016-3.020H.NCF
如果我註釋掉這行代碼:
//newfilename = Regex.Replace(fDialog.FileName, "F_NEW.NCF", "H_NEW.NCF");
它會正常工作,現在該文件將成爲:DER 1513016-3.020H.NCF
但是,如果我取消註釋該行代碼,文件名將不會更改爲DER 1513016-3.020H.NCF.
它將保留爲DER 1513016-3.020F.NCF.
爲什麼該行代碼導致該例程不改變e文件名?
太棒了。謝謝。 – fraXis 2010-05-20 23:30:20