Obteniendo el nombre del archivo de la cadena

¿Podría ayudarme a encontrar el nombre de archivo de la cadena. Ahora tengo una cadena de contenido como “C: \ xxxx \ xxxx \ xxxx \ abc.pdf”. Pero quiero solo el nombre del archivo. abc.pdf. ¿Cómo se obtendrá mediante el uso de funciones de cadena?

Utilice Path.GetFileName :

 string full = @"C:\xxxx\xxxx\xxxx\abc.pdf"; string file = Path.GetFileName(full); Console.WriteLine(file); // abc.pdf 

Tenga en cuenta que esto supone que la última parte del nombre es un archivo, no se comprueba. Por lo tanto, si le asignas “C: \ Windows \ System32”, reclamará un nombre de archivo de System32, aunque en realidad sea un directorio. (Sin embargo, pasar “C: \ Windows \ System32 \” devolverá una cadena vacía). Puede usar File.Exists para verificar que un archivo existe y que es un archivo en lugar de un directorio, si eso ayudara.

Este método tampoco comprueba que todos los demás elementos en la jerarquía de directorios existan, por lo que podría pasar “C: \ foo \ bar \ baz.txt” y devolvería baz.txt incluso si foo y bar no lo hacen existe.

Utilice el método Path.GetFileName ()

(Editado) muestra de la página de MSDN:

 string fileName = @"C:\xxxx\xxxx\xxxx\abc.pdf"; string path = @"C:\xxxx\xxxx\xxxx\"; string path2 = @"C:\xxxx\xxxx\xxxx"; string result; result = Path.GetFileName(fileName); Console.WriteLine("GetFileName('{0}') returns '{1}'", fileName, result); result = Path.GetFileName(path); Console.WriteLine("GetFileName('{0}') returns '{1}'", path, result); result = Path.GetFileName(path2); Console.WriteLine("GetFileName('{0}') returns '{1}'", path2, result); 

Este código produce una salida similar a la siguiente:

 GetFileName('C:\xxxx\xxxx\xxxx\abc.pdf') returns 'abc.pdf' GetFileName('C:\xxxx\xxxx\xxxx\') returns '' GetFileName('C:\xxxx\xxxx\xxxx') returns 'xxxx' 

Sytem.IO.FileInfo también es bastante bueno: en su caso, puede hacerlo

 FileInfo fi = new FileInfo("C:\xxxx\xxxx\xxxx\abc.pdf"); string name = fi.Name; // it gives you abc.pdf 

Entonces puedes tener varias otras informaciones:
¿el archivo realmente existe? fi.Exists te da la respuesta
cual es su extension ver la fi.Extension
¿Cuál es el nombre de su directorio? ver fi.Directory
etc.

Eche un vistazo a todos los miembros de FileInfo , puede encontrar algo interesante para sus necesidades.

Utilice los métodos de System.IO.Path , especialmente Path.GetFileName .

System.IO.Path.GetFilename (yourFilename) devolverá el nombre del archivo.