Ich muss eine Verzeichniszeichenfolge analysieren, die ich bekomme und entferne die letzten wenigen Ordner.
Zum Beispiel, wenn ich diese Verzeichniszeichenfolge habe:
%Vor%Ich muss die letzten zwei Directions möglicherweise abschneiden, um eine neue Verzeichniszeichenfolge zu erstellen:
%Vor% Was ist ein guter Weg, dies zu tun? Ich weiß, dass ich Zeichenfolge split
und join
verwenden kann, aber ich denke, dass es eine bessere Möglichkeit gibt, dies zu tun.
Hier ist eine einfache rekursive Methode, die davon ausgeht, dass Sie wissen, wie viele übergeordnete Verzeichnisse aus dem Pfad entfernt werden sollen:
%Vor%Ich muss eine Verzeichniszeichenfolge analysieren, die ich bekomme und entferne die letzten wenigen Ordner.
Zum Beispiel, wenn ich diese Verzeichniszeichenfolge habe:
%Vor%Ich muss die letzten zwei Directions möglicherweise abschneiden, um eine neue Verzeichniszeichenfolge zu erstellen:
%Vor%Was ist ein guter Weg, dies zu tun? Ich weiß, dass ich Zeichenfolge %code% und %code% verwenden kann, aber ich denke, dass es eine bessere Möglichkeit gibt, dies zu tun.
Sie könnten in diesem Fall die %code% Klasse verwenden - wenn Sie rufen %code% wiederholt auf, damit wird der letzte Pfad abgeschnitten :
%Vor%Sie könnten versuchen:
%Vor%Nicht elegant, aber sollte effektiv sein.
Bearbeiten: (noch uneleganter)
Hier ist eine einfache rekursive Methode, die davon ausgeht, dass Sie wissen, wie viele übergeordnete Verzeichnisse aus dem Pfad entfernt werden sollen:
%Vor%Ich würde mit der DirectoryInfo-Klasse und ihrer Parent-Eigenschaft gehen.
Der einfachste Weg, dies zu tun:
%Vor%Hinweis Dies geht zwei Ebenen höher. Das Ergebnis wäre: %code%
Was ist damit? (Entschuldigung, ich weiß nicht, was Ihre Kriterien sind, um zu bestimmen, was gelöscht werden soll) ...
%Vor% Sie könnten in diesem Fall die System.IO.Path
Klasse verwenden - wenn Sie rufen Path.GetDirectoryName
wiederholt auf, damit wird der letzte Pfad abgeschnitten :
Sie könnten versuchen:
%Vor%Nicht elegant, aber sollte effektiv sein.
Bearbeiten: (noch uneleganter)
Ich würde mit der DirectoryInfo-Klasse und ihrer Parent-Eigenschaft gehen.
Der einfachste Weg, dies zu tun:
%Vor% Hinweis Dies geht zwei Ebenen höher. Das Ergebnis wäre:
newPath = @"C:\workspace\AccurevTestStream\";