string path = "C:/folder1/folder2/file.txt";
Jakich obiektów lub metod mógłbym użyć, aby dać mi wynik folder2
?
c#
path
filesystems
Ash Burlaczenko
źródło
źródło
Odpowiedzi:
Prawdopodobnie użyłbym czegoś takiego:
Wewnętrzne wywołanie do
GetDirectoryName
zwróci pełną ścieżkę, a zewnętrzne wywołanie doGetFileName()
zwróci ostatni składnik ścieżki - która będzie nazwą folderu.To podejście działa niezależnie od tego, czy ścieżka rzeczywiście istnieje. Takie podejście opiera się jednak na ścieżce początkowo kończącej się nazwą pliku. Jeśli nie wiadomo, czy ścieżka kończy się nazwą pliku lub folderu - wymaga to sprawdzenia rzeczywistej ścieżki, aby sprawdzić, czy plik / folder istnieje najpierw w lokalizacji. W takim przypadku odpowiedź Dana Dimitru może być bardziej odpowiednia.
źródło
Spróbuj tego:
źródło
Prosty i czysty. Używa tylko
System.IO.FileSystem
- działa jak urok:źródło
file.txt
, a niefolder2
DirectoryInfo wykonuje zadanie usunięcia nazwy katalogu
źródło
Użyłem tego fragmentu kodu, aby uzyskać katalog ścieżki, gdy nazwa pliku nie zawiera ścieżki:
na przykład „c: \ tmp \ test \ visual”;
Wynik:
źródło
źródło
Ważne jest również, aby pamiętać, że podczas pobierania listy nazw katalogów w pętli
DirectoryInfo
klasa jest inicjalizowana raz, co pozwala tylko na pierwsze wywołanie. Aby ominąć to ograniczenie, upewnij się, że używasz zmiennych w swojej pętli do przechowywania nazw poszczególnych katalogów.Na przykład ten przykładowy kod zapętla listę katalogów w dowolnym katalogu nadrzędnym, dodając jednocześnie każdy znaleziony katalog do nazwy wewnątrz listy ciągów znaków:
[DO#]
[VB.NET]
źródło
Poniższy kod pomaga uzyskać tylko nazwę folderu
źródło
Jest to brzydkie, ale unika alokacji:
źródło