从 AppDataLocalMicrosoftOffice16.0Lync 拆分 SIP 地址时出现



我正在尝试拆分文件夹C:Users%username%AppDataLocalMicrosoftOffice16.0Lync中的sip_address 由于我有多个活动的 SIP 地址,因此在此示例中获取所需的地址时会遇到一些问题

,因此example2@example2.com

此文件夹中可能还有更多 SIP 地址,但我只想有一个示例2。

我从整理目录中的所有子文件夹开始,给我一个结果:

C:Users%username%AppDataLocalMicrosoftOffice16.0Lyncsip_example1@example1.com
C:Users%username%AppDataLocalMicrosoftOffice16.0Lyncsip_example2@example2.com
C:Usersc%username%AppDataLocalMicrosoftOffice16.0LyncTracing

这就是面临拆分问题的地方,因为我的代码根本不好,结果将是:

example2@example2.comC:\Users\%username%\AppData\Local\Microsoft\Office\16.0\Lync\Tracing

Imports System.IO
Public Class Form1
    Dim SIPAccount As String
    Private Sub GETSipAccount()
        ' Path and SIP-Addresses has been anonymous due to personal addresses.
        For Each Dir As String In Directory.GetDirectories("C:Users%username%AppDataLocalMicrosoftOffice16.0Lync")
            ' List out directory
            SIPAccount = SIPAccount & Dir & vbNewLine
            On Error Resume Next ' I do not want to include this in my application at all
            ' Splits out text
            SIPAccount = ((Split(Split(SIPAccount, "sip_")(1), "@example2.com")(0))) & "@example2.com"
            MsgBox(SIPAccount)
        Next
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        GETSipAccount()
    End Sub

根据"example2"字符串部分对于目录地址是否唯一,您可以使用类似的东西

Dim lst As List(Of String) = IO.Directory.GetDirectories("C:...").ToList
MessageBox.Show(lst.FindAll(Function(x) x.Contains("example2"))(0))

如果你只想比较字符串的最后一部分,你可以使用类似的东西

Dim lst As List(Of String) = IO.Directory.GetDirectories("C:...").ToList
For Each item As String In lst
    Dim lastindexofbackslash As Integer = item.LastIndexOf("")
    Dim _item As String = item.Substring(lastindexofbackslash + 1)
    If _item.Contains("example2") Then
        MsgBox(_item.Substring(4))
    End If
Next