vb.net Como passar uma string com espaços para a linha de comando
Eu estou tentando chamar um programa externo usando o processo:
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()
O problema está no nome do arquivo (variável fn acima). Se houver espaços, o comando engasga - sem espaços, funciona bem. Eu tentei adicionar 1, 2 ou 3 aspas, assim:
fn = Chr(34) & Chr(34) & Chr(34) & fn & Chr(34) & Chr(34) & Chr(34)
e também
fn = "\") & Chr(34) & fn & "\"& Chr(34)
e muitas outras combinações, mas ainda me dá um erro. Alguma idéia de como posso fazer isso funcionar? TIA