string path = "C:/folder1/folder2/file.txt";
De quais objetos ou métodos eu poderia usar que me dariam resultado folder2
?
c#
path
filesystems
Ash Burlaczenko
fonte
fonte
Respostas:
Eu provavelmente usaria algo como:
A chamada interna para
GetDirectoryName
retornará o caminho completo, enquanto a chamada externaGetFileName()
retornará o último componente do caminho - que será o nome da pasta.Essa abordagem funciona se o caminho realmente existe ou não. Essa abordagem, no entanto, depende do caminho que termina inicialmente em um nome de arquivo. Se não se sabe se o caminho termina em um nome de arquivo ou pasta - é necessário que você verifique o caminho real para ver se existe um arquivo / pasta no local primeiro. Nesse caso, a resposta de Dan Dimitru pode ser mais apropriada.
fonte
Tente o seguinte:
fonte
Simples e limpo. Usa apenas
System.IO.FileSystem
- funciona como um encanto:fonte
file.txt
, e nãofolder2
DirectoryInfo executa o trabalho para remover o nome do diretório
fonte
Usei esse trecho de código para obter o diretório para um caminho quando nenhum nome de arquivo está no caminho:
por exemplo "c: \ tmp \ test \ visual";
Resultado:
fonte
fonte
Também é importante observar que, ao obter uma lista de nomes de diretório em um loop, a
DirectoryInfo
classe é inicializada uma vez, permitindo apenas a primeira chamada. Para contornar essa limitação, certifique-se de usar variáveis dentro do seu loop para armazenar o nome de qualquer diretório individual.Por exemplo, esse código de amostra percorre uma lista de diretórios em qualquer diretório pai enquanto adiciona cada nome de diretório encontrado dentro de uma lista de tipos de sequência:
[C #]
[VB.NET]
fonte
O código abaixo ajuda a obter apenas o nome da pasta
fonte
Isso é feio, mas evita alocações:
fonte