2017-08-17 2 views
-1

Ich versuche, den vollständigen Pfad einer Zeichenfolge wie folgt zu erhalten:Wie eine Anzahl von Zeichen, bis bestimmte Zeichen C# bekommen

ksh /u01/Utilities/SSL_Certificates/TestCert_20170724.sh 

aber ich bin ein Problem mit und ich bin immer

/u01/Utilities/SSL_Certificates/Tes 

, die da ist, ist die 4 Zeichen von ksh

bekommen, wie kann ich die Zählung ausgehend von 0 auf den ersten Index „/“

erhalten 210

Was ich habe, ist dies:

string SSL_configuration_Path = ShellCommand.Substring(ShellCommand.IndexOf("/"), ShellCommand.LastIndexOf("/")); 
+0

Dies ist w Normalerweise hilft es, die [Dokumentation] (https://msdn.microsoft.com/en-us/library/aka44szs (v = vs.110) .aspx) zuerst zu überprüfen. – maccettura

Antwort

2

zweite Parameter ist, wie viele Zeichen.

Nicht welches Zeichen das letzte ist.

string SSL_configuration_Path = ShellCommand.Substring(
    ShellCommand.IndexOf("/"), 
    ShellCommand.LastIndexOf("/") - ShellCommand.IndexOf("/")); 

Nicht, dass dies eine gute Lösung ist, aber es sollte erklären, was Sie falsch machen und warum es nicht funktioniert.

+0

Jetzt bekomme ich '/ u01/Dienstprogramme/SSL_Certificates/TestCer' –

+2

2. Param ist Länge? Dann sollten Sie kein Subtraktionssymbol anstelle von Pluszeichen haben? Und die Bedingungen wechseln? So: 'ShellCommand.LastIndexOf ("/") - ShellCommand.IndexOf ("/")' –

+0

Ja, was @DanRayson sagte, lol. –

1

Versuchen Parh-Klasse, die für die Arbeit mit Verzeichnissen und Dateien die Namen der speziell für:

string ShellCommand = "ksh /u01/Utilities/SSL_Certificates/TestCert_20170724.sh"; 

string path = Path.GetDirectoryName(ShellCommand 
    .Substring(line.IndexOfAny(new char[] { 
    Path.AltDirectorySeparatorChar, 
    Path.DirectorySeparatorChar }))); 

Console.WriteLine(path); 

Ergebnis: entweder / oder \

\u01\Utilities\SSL_Certificates 

bitte, dass Sie Mitteilung verwenden können als directory Trennzeichen und erhalten das Endergebnis normalisiert (dh mit Path.DirectorySeparatorChar seperator)

Verwandte Themen