Solved

Need help with Process.StartInfo.WorkingDirectory

Posted on 2007-03-27
7
271 Views
Last Modified: 2010-04-16
Hi,

I have the following code:

Process p = new Process();
string myIP = "\\" + ipAddress[0].ToString() + "." + ipAddress[1].ToString() + "." + ipAddress[2].ToString() + "." + ipAddress[3].ToString();
p.StartInfo.WorkingDirectory = myIP +  "\\C$\\SomeFolder1\\SomeFolder2\\SomeFolder3\\";
p.StartInfo.FileName = "someExecutable.exe";
p.StartInfo.CreateNoWindow = true;
p.Start();  <===== generating error "The system cannot find the file specified"
p.WaitForExit();

When I look stop and examine the myIP variable, I have the following:

\\xxx.xxx.xx.xx

I suspect that it may have something to do with those escape characters but I don't know for sure.  Hopefully someone knows how to make this work.

thanks
0
Comment
Question by:brdrok
  • 4
  • 2
7 Comments
 
LVL 67

Expert Comment

by:sirbounty
ID: 18800767
p.StartInfo.WorkingDirectory = myIP +  "\\C$\\SomeFolder1\\SomeFolder2\\SomeFolder3\\";

will resolve to

\\xxx.xxx.xx.xx\\c$\\SomeFolder1\\SomeFolder2

What if you reconfigure it to resolve to

\\xxx.xxx.xx.xx\c$\SomeFolder1\SomeFolder2

Does that work?
0
 
LVL 7

Author Comment

by:brdrok
ID: 18800846
SirBounty,

I tried the following with the same error message:

p.StartInfo.WorkingDirectory = myIP +  @"\C$\SomeFolder1\SomeFolder2\SomeFolder3\";

When I step through the code, and examine
p,.StartInfo.WorkingDirectory", I notice that those "\\" appear again.  I don't understand why WorkingDirectory insists on using double "\" let alone how to make it smart enough to recognize single "\".

thanks
0
 
LVL 7

Author Comment

by:brdrok
ID: 18800879
I just tried the following:
p.StartInfo.WorkingDirectory = Path.Combine(myIP ,  @"\C$\SomeFolder1\SomeFolder2\SomeFolder3\)";

but the "WorkingDirectory" folder will only contain "\\C$\SomeFolder1\SomeFolder2\SomeFolder3\"

0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 67

Expert Comment

by:sirbounty
ID: 18800930
Do any of the 'somefolders' contain spaces?  You'll need to enclose it in quotes, if so...
0
 
LVL 7

Author Comment

by:brdrok
ID: 18800985
No, no spaces for the folder names.  

I looked at the MSND article and they have the following.  Perhaps it makes more sense to you than to me.
________________________________________________________________________________
If the directory is already part of the system path variable, it is not necessary to repeat the directory's location in this property.

The WorkingDirectory property behaves differently when UseShellExecute is true than when UseShellExecute is false. When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. If WorkingDirectory is an empty string, the current directory is understood to contain the executable.

When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. Instead, it is used by the process that is launched and only has meaning within the context of the new process.

___________________________________________________________________________

I tried the following:

p.StartInfo.UseShellExecute = true;
and
p.StartInfo.UseShellExecute = false;

but it didn't make a difference.

0
 
LVL 25

Accepted Solution

by:
dstanley9 earned 500 total points
ID: 18801009
string myIP = "\\" + ipAddress[0].ToString() + "." + ipAddress[1].ToString() + "." + ipAddress[2].ToString() + "." + ipAddress[3].ToString();

UNC patch should start with double-slashes, but this will only start with a single slash.  try

string myIP = @"\\" + ipAddress[0].ToString() + "." + ipAddress[1].ToString() + "." + ipAddress[2].ToString() + "." + ipAddress[3].ToString();

The rest of the path will turn the double-slashes to single slashes, so it should be fine (assuming of course that you have permissions to that share when running the app)
0
 
LVL 7

Author Comment

by:brdrok
ID: 18802460
dstaneley,

the @"\\" seems to do the trick.  Thanks.
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

This article introduced a TextBox that supports transparent background.   Introduction TextBox is the most widely used control component in GUI design. Most GUI controls do not support transparent background and more or less do not have the…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now