我有一个.exe文件,它接受一个.txt文件作为参数。但是,我无法使用vb.net中的以下代码。当我使用带有文本文件的cmd运行.exe时,它可以正常工作。
Dim a As New ProcessStartInfo
a.FileName = "C:\Users\Asim Rahman\Desktop\Project Input Files\DirectStiffness.exe"
a.Arguments = "C:\Users\Asim Rahman\Desktop\Project Input Files\HW3A.txt"
a.WindowStyle = ProcessWindowStyle.Maximized
Process.Start(a)
我还尝试过许多其他方式打开程序和文件,但我没能使它工作。任何帮助将不胜感激。 谢谢!
答案 0 :(得分:3)
我认为你的exe文件通过输入参数找到你的文本文件 但是文本文件的完整路径包含空格,这会将args参数分解为多个元素 您的程序引用的第一个参数是不完整的路径。
args[0] = "C:\users\asim"
.....
对于txt文件的路径名中存在的每个空格都是等等。
一个简单的解决方案是指定WorkingDirectory并从参数
中删除完整路径Dim a As New ProcessStartInfo
a.WorkingDirectory = "C:\Users\Asim Rahman\Desktop\Project Input Files"
a.FileName = "DirectStiffness.exe"
a.Arguments = "HW3A.txt"
a.WindowStyle = ProcessWindowStyle.Maximized
Process.Start(a)
答案 1 :(得分:1)
问题可能是您需要引用作为参数传递的文件名,因为它包含空格。如果不将其用双引号括起来,您的应用程序将单独获得以下参数:
C:\用户\阿西
拉赫曼\桌面\项目
输入
Files \ HW3A.txt
试试这个:
C#版
a.Arguments = @"\"C:\Users\Asim Rahman\Desktop\Project Input Files\HW3A.txt\"";
VB版
a.Arguments = """C:\Users\Asim Rahman\Desktop\Project Input Files\HW3A.txt"""