Блокнот Путь в VS2008 - PullRequest
       1

Блокнот Путь в VS2008

4 голосов
/ 25 июня 2010

В моем приложении я определил следующее:

public static readonly string NOTEPAD = "%windir%\\notepad.exe";

Я могу ввести текстовое значение NOTEPAD в команду «Выполнить» на моем компьютере с Win7, и Блокнот откроется..

Однако из моего проекта Visual Studio C # процедура записи строки будет запускаться каждый раз:

  if (!File.Exists(NOTEPAD)) {
    Console.WriteLine("File Not Found: " + NOTEPAD);
  }

Разве Visual Studio не понимает %windir%?

Ответы [ 4 ]

4 голосов
/ 25 июня 2010

Вместо того, чтобы раскрывать переменную вручную, как предлагалось в других ответах, вы можете сделать так, чтобы класс Environment сделал это для вас, как команда Run:

if (!File.Exists(Environment.ExpandEnvironmentVariables(NOTEPAD))) {
  Console.WriteLine("File Not Found: " + NOTEPAD);
}

См. http://msdn.microsoft.com/en-us/library/system.environment.expandenvironmentvariables.aspx

2 голосов
/ 25 июня 2010

При просмотре окна Windows XP расположение блокнота:

%SystemRoot%\system32\notepad.exe

Не:

%windir%\notepad.exe

Вам также необходимо убедиться, что эти переменные среды разрешены правильно - используйте Environment.GetEnvironmentVariable и Path.Combine для построения правильного пути:

string root = Environment.GetEnvironmentVariable("SystemRoot");
string path = Path.Combine(root, "system32", "notepad.exe");
1 голос
/ 25 июня 2010

Использование Environment.GetEnvironmentVariable("windir");

Чтобы вы могли объявить это так:

public static readonly string NOTEPAD = Environment.GetEnvironmentVariable("windir") + "\\notepad.exe";
1 голос
/ 25 июня 2010

Просто присмотритесь к окружающей среде класса.Переменная Environment это SystemRoot, поэтому вы можете использовать Environment.GetEnvironmentVariable ("windir") (или что-то в этом роде)

http://msdn.microsoft.com/en-us/library/system.environment.getenvironmentvariable.aspx

Консоль "Resolves" переменная среды% windir%на правильный путь.Вы должны использовать вышеупомянутую функцию, чтобы сделать то же самое в вашем приложении.

...