0

次のような文字列があるとします

        string[] _strFile;

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

私のリストビューには、\123\abc\hello\.net\****winxp**** という文字列があります。この場合、文字列の最後の値、つまりwinxpを取得したいのですが、関数は何ですか?それを行う?

getupperbond 関数を使用して文字列の上限を計算できますか?また、その使用方法は?

4

6 に答える 6

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

もちろん、実際のファイル名やパスなどを扱っている場合は、Pathクラスを使用する方がおそらく簡単です。

string fileName = Path.GetFileName(_strRecFileName);
于 2010-03-16T06:12:30.957 に答える
2

使わない理由

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

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

于 2010-03-16T06:15:06.477 に答える
1

これを試して:

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

この場合、追加の文字列を 1 つだけ作成するため、文字列の配列よりもメモリ使用量が少なくなります。しかし codeka が言ったように、テキストが適切なパスであれば、Pathクラスはより良いものになるでしょう。

于 2010-03-16T06:17:52.450 に答える
0

いつでも正規表現を使用できます

string sub = System.Text.Regularexpressions.Regex.Match(TextVar,@"\\(\w+?)$").groups[1].value
于 2010-03-16T06:21:03.720 に答える
0
String str = "\\123\\abc\\hello\\.net\\winxp";
String[] tokens = str.Split('\\');
String lastToken = tokens[tokens.Length - 1];
于 2010-03-16T06:14:47.683 に答える
0
String lastArrayItem = _strFile[_strFile.Length-1];
于 2010-03-16T06:18:27.800 に答える