C# How to use Directory White Spaces into process.arguements?
10,626
Solution 1
You need to escape the "
by appending a \
to them (\"
) - for normal strings, or doubling them (""
) for verbatim string literals (those starting with @
):
process.StartInfo.Arguments = @"-r C:\test\ftk\ntuser.dat -d ""C:\System Volume Information\" + restoreFolder.Name + @""" -p runmru";
Solution 2
Wrap that path in double quotes:
process.StartInfo.Arguments = @"-r C:\test\ftk\ntuser.dat -d ""C:\System Volume Information\" + restoreFolder.Name + @""" -p runmru";
Solution 3
Perhaps
process.StartInfo.Arguments = @"-r C:\test\ftk\ntuser.dat -d C:\System Volume Information\" + restoreFolder.Name + " -p runmru";
should be
process.StartInfo.Arguments = @"-r ""C:\test\ftk\ntuser.dat"" -d ""C:\System Volume Information\""" + restoreFolder.Name + " -p runmru";
Related videos on Youtube
Author by
JavaNoob
Updated on May 12, 2022Comments
-
JavaNoob about 2 years
The program created utilizes a 3rd party tool to generate a log file.
However the arguments provided for the the tool requires various files from Directory locations as part of generating the logs. Therefore the main argument of
@"-r C:\test\ftk\ntuser.dat -d C:\System Volume Information\" + restoreFolder.Name + " -p runmru";
would be used to generate the logs.May someone advise on how to make the arguments of "C:\System Volume Information\" be processed by the system with the white spaces in placed? Thanks!
The codes:
Process process = new Process(); process.StartInfo.FileName = @"C:\test\ftk\ripxp\ripxp.exe"; process.StartInfo.Arguments = @"-r C:\test\ftk\ntuser.dat -d C:\System Volume Information\" + restoreFolder.Name + " -p runmru"; process.StartInfo.CreateNoWindow = false; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardError = true; process.Start();
-
JavaNoob over 13 yearsThe restoreFolder.Name is a system name I thinker perhaps you placed an extra " or \ in the wrong area? even the above codes are showing errors already.
-
JavaNoob over 13 yearsThe system is showing that there is a unclosed " near the triple """.
-
Oded over 13 years@JavaNoob - Yeah. You were mixing verbatim string with non verbatim strings... Each needs different escaping. Corrected...
-
JavaNoob over 13 yearsReps up for answer but try not to use too much "" cause its confusing.