[Mono-devel-list] Arguments with spaces when starting external program through System.Diagnostics.Process
Miquel Ramírez
mvorkosigan at gmail.com
Sun May 22 11:26:41 EDT 2005
You must escape also the backlashes. For instance, to invoke a program like this
$ tar -cf rock.tar This file rocks.txt
the command string in you C# program should be:
"tar -cf rock.tar This\\ file \\ rocks.txt"
Miguel.
On 5/22/05, Sebastian Nowozin <nowozin at gmail.com> wrote:
> Hello everybody,
>
> I try to use the System.Diagnostics.Process class on Debian with Mono
> 1.1.6, to execute an external program, which takes as first parameter
> an absolute pathname. As I do not know anything about the pathname
> except that it is a valid file, it may contain spaces.
>
> I use Process.StartInfo.Arguments, which is of type string, to pass
> the arguments. However, I discovered that the Mono implementation of
> the Process class seems to act like a shell in that it splits the
> arguments on whitespaces. I tried to escape spaces using '"' and "\
> ", with no success. (The attached program illustrates the problem.)
>
> Hence, my question:
>
> Is it possible to explicitly escape the arguments, or - alternatively
> - a way to explicitly set each argument vector on its own? (like
> argv[1], argv[2], etc.)
>
>
> Regards,
> Sebastian Nowozin
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
>
More information about the Mono-devel-list
mailing list