C# 外部exe无法访问漫游配置文件

C# 外部exe无法访问漫游配置文件,c#,process.start,C#,Process.start,我有一个exe在调用第二个exe。两者都写在同一个文件夹中的c上。 在传递给第二个exe的参数中有一个文件的路径。该文件在第二个exe中读取。 除文件位于用户的profile app文件夹中且该配置文件存储在网络上外,所有操作都正常。 路径由以下内容构成: Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + SubFolderAndFileName 第一个exe读取文件时没有问题,但第二个exe获取的文件

我有一个exe在调用第二个exe。两者都写在同一个文件夹中的c上。 在传递给第二个exe的参数中有一个文件的路径。该文件在第二个exe中读取。 除文件位于用户的profile app文件夹中且该配置文件存储在网络上外,所有操作都正常。 路径由以下内容构成:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + SubFolderAndFileName
第一个exe读取文件时没有问题,但第二个exe获取的文件错误不存在

这是启动第二个exe的代码:

Process p = new Process();
p.StartInfo.Arguments = Args;
p.StartInfo.FileName = "second.exe";
p.Start();

谢谢您的帮助。

您需要确保路径用引号括起来。它很可能包含spaces XP的AppData文件夹是C:\Documents and Settings\User\Application Data,这意味着路径的部分被视为两个不同的参数,例如:

C:\Program Files\My Company\My Program

当不带引号的字符串变为:

0 => C:\Program
1 => Files\My
2 => Company\My
3 => Program

可能不是您想要的,并且可能会导致问题。

您应该打印您尝试访问的文件名-可能构造错误。按照@AlexeiLevenkov所说的,我在构造路径时总是尝试使用Path.Combinepath1,path2,因此我确保路径正确连接,而不仅仅是执行路径1+路径2