vb.net So übergeben Sie eine Zeichenfolge mit Leerzeichen an die Befehlszeile

Ich versuche ein externes Programm mit Process aufzurufen:

    Dim strExe As String = "E:\Projects\Common Files\mktorrent.exe"
    Dim p As New Process
    Dim pinfo As New ProcessStartInfo
    pinfo.UseShellExecute = False
    pinfo.RedirectStandardOutput = True
    pinfo.Arguments = " -a http://blah.com/announce.php -l " & FileSizeMarker & " " & fn
    pinfo.FileName = strExe
    pinfo.WorkingDirectory = fn.Substring(0, fn.LastIndexOf("\"))
    pinfo.WindowStyle = ProcessWindowStyle.Normal
    pinfo.CreateNoWindow = True
    p.StartInfo = pinfo
    p.Start()

Das Problem liegt beim Dateinamen (Variable fn oben). Wenn es Leerzeichen gibt, drosselt der Befehl - ohne Leerzeichen funktioniert es einwandfrei. Ich habe versucht, 1, 2 oder 3 Anführungszeichen wie folgt hinzuzufügen:

    fn = Chr(34) & Chr(34) & Chr(34) & fn & Chr(34) & Chr(34) & Chr(34)

und auch

    fn = "\") & Chr(34) & fn & "\"& Chr(34)

und viele andere Kombinationen, aber es gibt mir immer noch einen Fehler. Irgendwelche Gedanken darüber, wie ich das zum Laufen bringen kann? TIA

Antworten auf die Frage(5)

Ihre Antwort auf die Frage