Eliminar la extensión de archivo de una cadena de nombre de archivo
Si tengo una cadena que dice "abc.txt"
, ¿hay alguna manera rápida de obtener una subcadena que sea justa "abc"
?
No puedo hacer fileName.IndexOf('.')
porque el nombre del archivo podría ser "abc.123.txt"
o algo así y obviamente solo quiero deshacerme de la extensión (es decir "abc.123"
).
El Path.GetFileNameWithoutExtension
método le proporciona el nombre del archivo que pasa como argumento sin la extensión, como debería ser obvio por el nombre.
Hay un método en el marco para este propósito, que mantendrá la ruta completa excepto la extensión.
System.IO.Path.ChangeExtension(path, null);
Si sólo se necesita el nombre del archivo, utilice
System.IO.Path.GetFileNameWithoutExtension(path);
Puedes usar
string extension = System.IO.Path.GetExtension(filename);
Y luego elimine la extensión manualmente:
string result = filename.Substring(0, filename.Length - extension.Length);
String.LastIndexOf funcionaría.
string fileName= "abc.123.txt";
int fileExtPos = fileName.LastIndexOf(".");
if (fileExtPos >= 0 )
fileName= fileName.Substring(0, fileExtPos);
Quizás no le preguntes a la API de UWP. Pero en UWP, file.DisplayName
es el nombre sin extensiones. Espero que sea útil para otros.