J'ai un problème étrange et je n'arrive pas à le comprendre.Problème avec Regex.Replace() lors de la modification d'un nom de fichier
Mon nom est quelque chose comme ceci:
DER 1513016-3.020F.NCF.
Je veux être en mesure de changer à:
DER 1513016-3.020H.NCF
Parfois, le nom du fichier peut être cela aussi:
DER 1513016-3.020F_NEW.NCF
qui deviendrait:
DER 1513016-3.020H_NEW.NCF
Ceci est mon code pour le faire:
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");
}
C'est là que ça devient bizarre. La façon dont le code fonctionne maintenant, il ne changera pas le nom du fichier à DER 1513016-3.020H.NCF
Si je commente cette ligne de code:
//newfilename = Regex.Replace(fDialog.FileName, "F_NEW.NCF", "H_NEW.NCF");
cela fonctionnera très bien et le fichier deviendra maintenant: DER 1513016-3.020H.NCF
Cependant, si je décommenter cette ligne de code, le nom ne changera pas à DER 1513016-3.020H.NCF.
Il restera comme DER 1513016-3.020F.NCF.
Pourquoi cette ligne de code provoque la routine de ne pas chang e le nom de fichier?
Génial. Merci. – fraXis