Внешний exe не может получить доступ к перемещаемому профилю - PullRequest
0 голосов
/ 16 марта 2012

У меня есть exe, вызывающий второго exe.Оба написаны на c # сидят в одной папке.В аргументах, передаваемых второму exe, есть путь к файлу.Файл читается во втором exe.Все работает нормально, за исключением случаев, когда файл находится в папке приложения профиля пользователя и профиль хранится в сети.Путь составляется следующим образом:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + SubFolderAndFileName

Первый исполняемый файл считывает файл без проблем, но второй исполняемый файл получает ошибку, что файл не существует.

Это код, запускающийВторой exe:

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

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 16 марта 2012

Вы должны убедиться, что путь указан в кавычках. Весьма вероятно, что он будет содержать пробелы (папка AppData в XP 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

Вероятно, не то, что вы хотите, и может вызвать проблемы.

...