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)

和许多其他组合,但它仍然给我一个错误.有关如何让它工作的任何想法?
TIA

请查看以下链接,它在C#中,可能对您有所帮助

Word command-line-arguments space issues

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...