2016-12-15 4 views
0

In meinem Code muss ich einen Platzhalter "*" verwenden, um nach einem Ordnernamen zu suchen, der simliar ist. Dieser Code funktioniert problemlos in VBA (außer für die Zeile Process.Start ...), aber alles, was es jetzt tut, ist, öffnen Sie meine Dokumente.VB.net Ordner Pfad funktioniert nicht

Es soll einen Netzwerkordner öffnen.

Der String pathStr erzeugt den endgültigen Ordnerpfad, und das ist richtig

Ich habe triple-checked den Ordnerpfad (I kopiert, was dieser Code erzeugt und eingefügt in Windows Explorer und der Pfad auscheckt)

Warum öffnet mein Code nur Meine Dokumente?

Private Sub OpenJobToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenJobToolStripMenuItem.Click 
    Dim jobnum As String = ListView1.SelectedItems(0).Text 

    'Define the master path to all job numbers 
    Dim masterpath As String = "\\ussatf02\Production\00A Job Folders\" 

    'Get the child folder path 
    Dim fullFolder As String = masterpath & jobnum.Substring(0, 5) & "xxx\" 

    'Get first 8 characters of job number 
    Dim jobFolder As String = jobnum.Substring(0, 8) 

    'Define the full path to the jobFolder 
    Dim xPath As String = fullFolder & jobFolder 

    'Check the full path with a wildcard to see if there is a folder named something simliar to what we have 
    Dim foundFolder As String = Dir(xPath & "*", vbDirectory) 

    'If the folder is not found (length < 2) then throw an error, else open the folder 
    If (foundFolder.Length < 2) Then 
     Dim msgRes As MsgBoxResult = MsgBox("The job folder for: " & jobnum & " could not be found.", vbCritical, "Error Finding Folder") 
    Else 

     'Define the final path of the folder 
     Dim pathStr As String = xPath & "\" & foundFolder 

     'Open the folder 
     System.Diagnostics.Process.Start("explorer.exe", pathStr) 
    End If 

End Sub 

Jede Hilfe wird sehr geschätzt werden !!

EDIT

ich jetzt die Linie ersetzt

Dim pathStr As String = xPath & "\" & foundFolder 

Für

Dim pathStr As String = System.IO.Path.GetDirectoryName(xPath & "\" & foundFolder) 

Und ich immer noch das gleiche Ergebnis

+0

Welchen Wert haben Sie für xPath erhalten? –

+0

@TonyDong Ich bekomme: '\\ ussatf02 \ Produktion \ 00A Jobordner \ 21643xxx \ 21643043'. Das Problem ist, dass einige Mitarbeiter am Ende des Ordners zusätzliche Zeichen hinzufügen (Beispiel, benenne den Ordner um: 21643043 - Mein Kunde) - also muss ich eine Platzhaltersuche durchführen. – Sanya

+0

Können Sie FoundFolder bekommen? –

Antwort

1

Explorer auf einen Standardordner gehen in In diesem Fall "Meine Dokumente", wenn der Ordner Sie sind Der Versuch, zu öffnen, ist nicht da. Stellen Sie sicher, dass pathStr existiert.

Mai Ihr Ordner enthält Unicode-Zeichen finden Sie mehr in dieser URL C#: System.Diagnostics.Process.Start("Explorer.exe", @"/select" + FilePath). Can not open file when file's name is unicode character

System.Diagnostics.Process.Start ("Explorer.exe", "/ select", "" & pathStr & "" "")

+0

Immer noch nichts. Ich musste das "@" innerhalb der Anführungszeichen bewegen (Intellisense mochte es nicht außerhalb der Anführungszeichen). Ich habe auch versucht, "+" für '&' zu ersetzen. Ich benutze VB.net, vielleicht ist das der Grund, warum es anders ist ... – Sanya

+1

Sorry, ich habe vergessen, @ hat nicht in VB.net funktioniert, siehe Update-Code –