C # entspricht InStrRev

8

Ich habe über eine Stunde lang gesucht, und ich kann nicht für das Leben von mir herausfinden, wie man eine Zeichenkettenvariable beginnt, die auf der rechten Seite beginnt. Ich möchte den letzten Ordner eines Pfades (direkt vor dem Dateinamen) holen. In VB6 würde ich so etwas machen:

%Vor%

Folgendes habe ich bisher versucht:

%Vor%     
Mark Kram 02.04.2011, 06:09
quelle

3 Antworten

6

Vermutlich möchten Sie die letzte \ in der Zeichenfolge ignorieren, da Ihr VB-Code alle bis auf das letzte Zeichen durchsucht. Ihr C # -Code funktioniert nicht, weil er die gesamte Zeichenfolge durchsucht und das \ als letztes Zeichen in der Zeichenfolge findet, wodurch Ihre Teilzeichenfolge nichts zurückgibt. Sie müssen LastIndexOf anweisen, bei dem Zeichen vor dem letzten zu beginnen, genau wie in VB.

Ich denke, das Äquivalent zu Ihrem VB-Code wäre:

%Vor%     
Gabe 02.04.2011, 06:21
quelle
8

Verwenden Sie strToSearch.LastIndexOf(strToFind); .

BEARBEITEN: Ich sehe, dass du deine Frage aktualisiert hast, um zu sagen, dass du LastIndexOf() ausprobiert hast. Diese Methode funktioniert, ich habe sie oft benutzt.

Sie haben gesagt, dass Sie die Position erhalten möchten, an der der Dateiname beginnt. Ihr Beispielpfad enthält jedoch keinen Dateinamen. (Da es mit \ endet, bedeutet dies, dass es sich um einen Verzeichnisnamen handelt.)

Wie an anderer Stelle empfohlen, wenn Sie nicht wirklich die letzte \ wollen, müssen Sie den Startindex angeben, damit LastIndexOf() die hinteren Schrägstriche überspringt, die Sie nicht wollen.

    
Jonathan Wood 02.04.2011 06:13
quelle
3
%Vor%

Bearbeiten: Erläuterungsbeispiel

    
Jesper Palm 02.04.2011 06:32
quelle

Tags und Links