Frage

Angenommen, ich habe eine Zeichenfolge wie

        string[] _strFile;

        foreach (ListViewItem item in listview1.Items)
        {
            string _strRecFileName = item.SubItems[5].Text;
            _strFile = _strRecFileName.Split('\\');
        }

in meinem Listview Ich habe einen String als \ 123 \ abc \ Hallo \ .net \ **** winxp **** Nun will ich den letzten Wert der Zeichenfolge erhalten d winxp in diesem Fall .. Was ist die Funktion, das zu tun?

kann ich mit getupperbond Funktion der oberen Grenze des Strings zu berechnen, und wie es zu benutzen?

War es hilfreich?

Lösung

string[] files = _strRecFileName.Split('\\');
string lastElement = files[files.Length - 1];

Natürlich, wenn man es zu tun mit dem tatsächlichen Dateinamen und Pfaden und Sachen, ist es wahrscheinlich einfacher, nur die Path Klasse verwenden:

string fileName = Path.GetFileName(_strRecFileName);

Andere Tipps

warum nicht Gebrauch

string expectedPart = Path.GetFileName(item.SubItems[5].Text);

http://msdn.microsoft.com /en-us/library/system.io.path.getfilename.aspx

versuchen, diese:

string s = @"a\b\c\d\e";
int index = s.LastIndexOf('\\');
string fileName = s.Substring(index + 1);

Sie werden nur eine zusätzliche Zeichenkette in diesem Fall erstellen, so dass es weniger Speicher als ein Array von Strings verwenden. Aber wie codeka sagte, wenn der Text ein richtiger Pfad ist dann die Path Klasse besser wäre.

String lastArrayItem = _strFile[_strFile.Length-1];

Sie können jederzeit verwenden regex

string sub = System.Text.Regularexpressions.Regex.Match(TextVar,@"\\(\w+?)$").groups[1].value
String str = "\\123\\abc\\hello\\.net\\winxp";
String[] tokens = str.Split('\\');
String lastToken = tokens[tokens.Length - 1];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top