string path = "C:/folder1/folder2/file.txt";
Aus welchen Objekten oder Methoden könnte ich ein Ergebnis erzielen folder2
?
c#
path
filesystems
Ash Burlaczenko
quelle
quelle
Antworten:
Ich würde wahrscheinlich so etwas verwenden wie:
Der innere Aufruf von
GetDirectoryName
gibt den vollständigen Pfad zurück, während der äußere Aufruf vonGetFileName()
die letzte Pfadkomponente zurückgibt - den Ordnernamen.Dieser Ansatz funktioniert unabhängig davon, ob der Pfad tatsächlich vorhanden ist oder nicht. Dieser Ansatz basiert jedoch auf dem Pfad, der anfänglich mit einem Dateinamen endet. Wenn nicht bekannt ist, ob der Pfad mit einem Dateinamen oder einem Ordnernamen endet, müssen Sie zuerst den tatsächlichen Pfad überprüfen, um festzustellen, ob eine Datei / ein Ordner am Speicherort vorhanden ist. In diesem Fall könnte die Antwort von Dan Dimitru angemessener sein.
quelle
Versuche dies:
quelle
Einfach und sauber. Nur verwendet
System.IO.FileSystem
- funktioniert wie ein Zauber:quelle
file.txt
und nichtfolder2
DirectoryInfo erledigt den Job, um den Verzeichnisnamen zu entfernen
quelle
Ich habe dieses Code-Snippet verwendet, um das Verzeichnis für einen Pfad abzurufen, wenn sich kein Dateiname im Pfad befindet:
zum Beispiel "c: \ tmp \ test \ visual";
Ausgabe:
quelle
quelle
Es ist auch wichtig zu beachten, dass beim Abrufen einer Liste von Verzeichnisnamen in einer Schleife die
DirectoryInfo
Klasse einmal initialisiert wird, sodass nur ein erstmaliger Aufruf möglich ist. Um diese Einschränkung zu umgehen, stellen Sie sicher, dass Sie Variablen in Ihrer Schleife verwenden, um den Namen eines einzelnen Verzeichnisses zu speichern.Dieser Beispielcode durchläuft beispielsweise eine Liste von Verzeichnissen in einem übergeordneten Verzeichnis, während jeder gefundene Verzeichnisname in einer Liste mit dem Zeichenfolgentyp hinzugefügt wird:
[C #]
[VB.NET]
quelle
Der folgende Code hilft, nur den Ordnernamen abzurufen
quelle
Dies ist hässlich, vermeidet jedoch Zuweisungen:
quelle