Estaba usando este vínculo más útiles: How do I check if a given string is a legal/valid file name under Windows?¿Cómo obtener un "nombre en inglés" para un personaje?
Y dentro de un cierto código de validación tengo algo que se parece a (ignorar el hecho de que no estoy usando una clase StringBuilder e ignorar el fallo en la formación del mensaje (Don 't necesidad de contarles sobre 'Colón' más de una vez si se muestra en la cadena más de una vez)):
string InvalidFileNameChars = new string(Path.GetInvalidFileNameChars());
Regex ContainsABadChar = new Regex("[" + Regex.Escape(InvalidFileNameChars) + "]");
MatchCollection BadChars = ContainsABadChar.Matches(txtFileName.Text);
if (BadChars.Count > 0)
{
string Msg = "The following invalid characters were detected:\r\n\r\n";
foreach (Match Bad in BadChars)
{
Msg += Bad.Value + "\r\n";
}
MessageBox.Show(Msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
ese cuadro de mensaje tendrá un aspecto similar (utilizando el ejemplo que se encuentra dos puntos):
- comenzar -
se detectanLos siguientes caracteres no válidos:
:
- extremo -
Me gustaría que decir algo como:
- empezar -
Se detectaron los siguientes caracteres no válidos:
Colon ->:
- fin -
Me gusta tener el nombre en inglés. No es un asesino, pero tenía curiosidad por si hay alguna función como (que no existe para la clase Char, pero puede existir en alguna otra clase en la que no estoy pensando):
Char.GetEnglishName (': ');
¿ha intentado escribir su propia función? –
@ DanielA.White No estoy seguro de si quiere Unicode, pero son muchos los personajes. el Programa Charmap tiene esa información. – McKay
:) Char.GetEnglishName (':'); Desearía que hubiera un método como este –