在 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;