Existe algo embutido System.IO.Path
que me dê apenas o caminho do arquivo?
Por exemplo, se eu tiver um string
@ "c: \ servidor da web \ público \ minhaempresa \ configs \ promo.xml",
Existe algum método BCL que me dê
"c: \ servidor da web \ público \ minhaempresa \ configs \"?
promo.xml
designa um arquivo ou diretório com o mesmo nome. É provavelmente por isso que aPath.GetDirectoryName()
implementação é tão simples e apenas trunca o último segmento ou remove a barra final, se houver um.Respostas:
Path.GetDirectoryName()
... mas você precisa saber que o caminho que está passando para ele contém um nome de arquivo; ele simplesmente remove o bit final do caminho, seja um nome de arquivo ou diretório (na verdade, ele não tem idéia de qual).Você pode validar primeiro testando
File.Exists()
e / ouDirectory.Exists()
em seu caminho primeiro para ver se precisa chamarPath.GetDirectoryName
fonte
File.Exists()
. Na verdade, é bastante contraproducente no caso em que o motivo para encontrar o nome do diretório é criá-lo, se ele ainda não existir.System.IO
para que isso funcione.fonte
using System.IO;
- se de utilizar métodos de caminhoPath.GetDirectoryName()
retorna o nome do diretório, portanto, o que você deseja (com o caractere solidus reverso à direita) pode chamarPath.GetDirectoryName(filePath) + Path.DirectorySeparatorChar
.fonte
fonte
Use 'GetParent ()' como mostrado, funciona bem. Adicione a verificação de erros conforme necessário.
fonte
Eu usei isso e funciona bem:
fonte