【问题标题】:Passing filepath in Main(string[] args) no working with space caracter在 Main(string[] args) 中传递文件路径不适用于空格字符
【发布时间】:2017-07-18 10:41:56
【问题描述】:

我正在尝试从 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]));
        }
    }

我有空格字符的问题。例如,路径是:

C:\Program Files\bt\Myfile.wasp

但是 args[0] 是:

C:\Program

我该如何解决这个问题?请帮帮我。

【问题讨论】:

  • 尝试用引号包裹字符串:"C:\Program Files\bt\myprog.exe"this example
  • 谢谢你。我正在使用 c# Winforms。我不理解你的例子
  • 下次请用相关标签标记您的问题。我以为你在使用 Java...

标签: c# winforms arguments main


【解决方案1】:

这对我有用:

string s="";
int i = 0;
foreach (var arg in args)
  {
    if(i != 0)
     {
      s = s + " " + arg;
     }
    i++;                     
  }
args[0] = args[0] + s;

【讨论】:

    【解决方案2】:

    嗯,答案已经在 cmets 中提到了,只需将参数用引号括起来即可。

    如果您将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="";诠释 i = 0; foreach (var args in args) { if(i != 0) { s = s + " " + arg; } 我++; } args[0] = args[0] + s;'
    猜你喜欢
    • 2013-07-23
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多