【发布时间】:2010-05-20 22:43:24
【问题描述】:
我遇到了一个奇怪的问题,我似乎无法弄清楚。
我的文件名是这样的: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.
为什么那行代码导致例程不更改文件名?
【问题讨论】:
标签: c# regex replace filenames