我有一个奇怪的问题,我似乎无法弄清楚。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