¿Hay algo integrado en System.IO.Path
que me dé solo la ruta del archivo?
Por ejemplo, si tengo un string
@ "c: \ webserver \ public \ myCompany \ configs \ promo.xml",
¿Hay algún método BCL que me dará
"c: \ servidor web \ public \ myCompany \ configs \"?
promo.xml
designa un archivo o un directorio con ese mismo nombre. Probablemente por esoPath.GetDirectoryName()
se implementa de manera tan simple y simplemente trunca el último segmento, o elimina la barra inclinada final si hay una.Respuestas:
Path.GetDirectoryName()
... pero necesita saber que la ruta que está pasando contiene un nombre de archivo; simplemente elimina el bit final de la ruta, ya sea un nombre de archivo o un nombre de directorio (en realidad no tiene idea de cuál).Primero puede validar probando
File.Exists()
y / oDirectory.Exists()
en su ruta primero para ver si necesita llamarPath.GetDirectoryName
fuente
File.Exists()
. De hecho, es bastante contraproducente en el caso en que su razón para encontrar el nombre del directorio es crearlo si aún no existe.System.IO
para que esto funcione.fuente
using System.IO;
utilizar métodos de rutaPath.GetDirectoryName()
devuelve el nombre del directorio, por lo que podría llamar (con el carácter de solidus inverso al final)Path.GetDirectoryName(filePath) + Path.DirectorySeparatorChar
.fuente
fuente
Use 'GetParent ()' como se muestra, funciona bien. Agregue la comprobación de errores según lo necesite.
fuente
Usé esto y funciona bien:
fuente