在 Main(string[] args) 中传递文件路径不适用于 space 字符
Passing filepath in Main(string[] args) no working with space caracter
我正在尝试从 Main(string[] args)
中获取带有 args[0] 的文件路径
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length == 0)
{
Application.Run(new RadForm1());
}
else
{
Application.Run(new RadForm1(args[0]));
}
}
我对 space 字符有疑问。例如,路径是:
C:\Program Files\bt\Myfile.wasp
但是 args[0] 是:
C:\Program
我该如何解决这个问题?请帮助我。
嗯,答案已经在评论中提到了,只需将您的参数用引号引起来即可。
如果您将 C:\Program Files\bt\Myfile.wasp
传递给您的程序,Windows 会将其解释为两个单独的参数,您将获得两个参数:
args[0] = "C:\Program"
args[1] = "Files\bt\Myfile.wasp"
因此,为了在 args[0]
中将其作为一个参数,您需要将其作为一个参数传递。这样做的方法是用这样的引号将其包装起来:"C:\Program Files\bt\Myfile.wasp"
这对我有用:
string s="";
int i = 0;
foreach (var arg in args)
{
if(i != 0)
{
s = s + " " + arg;
}
i++;
}
args[0] = args[0] + s;
我正在尝试从 Main(string[] args)
中获取带有 args[0] 的文件路径static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length == 0)
{
Application.Run(new RadForm1());
}
else
{
Application.Run(new RadForm1(args[0]));
}
}
我对 space 字符有疑问。例如,路径是:
C:\Program Files\bt\Myfile.wasp
但是 args[0] 是:
C:\Program
我该如何解决这个问题?请帮助我。
嗯,答案已经在评论中提到了,只需将您的参数用引号引起来即可。
如果您将 C:\Program Files\bt\Myfile.wasp
传递给您的程序,Windows 会将其解释为两个单独的参数,您将获得两个参数:
args[0] = "C:\Program"
args[1] = "Files\bt\Myfile.wasp"
因此,为了在 args[0]
中将其作为一个参数,您需要将其作为一个参数传递。这样做的方法是用这样的引号将其包装起来:"C:\Program Files\bt\Myfile.wasp"
这对我有用:
string s="";
int i = 0;
foreach (var arg in args)
{
if(i != 0)
{
s = s + " " + arg;
}
i++;
}
args[0] = args[0] + s;