vb.net Как передать строку с пробелами в командную строку
Я пытаюсь вызвать внешнюю программу, используя Process:
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()
Проблема с именем файла (переменная fn выше). Если у него есть пробелы, команда дросселей - без пробелов, работает нормально. Я попытался добавить 1, 2 или 3 цитаты, например:
fn = Chr(34) & Chr(34) & Chr(34) & fn & Chr(34) & Chr(34) & Chr(34)
а также
fn = "\") & Chr(34) & fn & "\"& Chr(34)
и многие другие комбинации, но это все равно дает мне ошибку. Любые мысли о том, как я могу заставить это работать? ТИА