VS2008中的记事本路径

发布于 2024-09-06 21:44:38 字数 399 浏览 7 评论 0原文

在我的应用程序中,我定义了以下内容:

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

我可以在 Win7 上的“运行”命令中输入“NOTEPAD”的文本值机,记事本将打开。

但是,在我的 Visual Studio C# 项目中,Write Line 例程每次都会触发:

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

Does Visual Studio not recognize %windir%?

In my application, I have defined the following:

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

I can type in the text value of NOTEPAD into the Run command on my Win7 machine, and Notepad will open.

However, from within my Visual Studio C# project, the Write Line routine will fire every time:

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

Does Visual Studio not understand %windir%?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

最好是你 2024-09-13 21:44:38

您可以让环境类为您执行此操作,就像到目前为止的其他答案所建议的那样手动扩展变量,就像 Run 命令所做的那样:

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

请参阅http://msdn.microsoft.com/en-us/library/system.environment.expandenvironmentvariables.aspx< /a>

Instead of expanding the variable manually as suggested by the other answers so far, you can have the Environment class do this for you just like the Run command does:

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

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

花辞树 2024-09-13 21:44:38

当查看我的 Windows XP 盒子时,记事本的位置是:

%SystemRoot%\system32\notepad.exe

不:

%windir%\notepad.exe

您还需要确保这些环境变量已正确解析 - 使用 Environment.GetEnvironmentVariablePath.Combine 建立正确的路径:

string root = Environment.GetEnvironmentVariable("SystemRoot");
string path = Path.Combine(root, "system32", "notepad.exe");

When looking on my windows XP box, the location of notepad is:

%SystemRoot%\system32\notepad.exe

Not:

%windir%\notepad.exe

You also need to make sure that these environment variables are resolved correctly - use Environment.GetEnvironmentVariable and Path.Combine to build up the correct path:

string root = Environment.GetEnvironmentVariable("SystemRoot");
string path = Path.Combine(root, "system32", "notepad.exe");
怂人 2024-09-13 21:44:38

仔细看看班级环境。环境变量是SystemRoot,所以你可以使用
Environment.GetEnvironmentVariable("windir") (或类似的东西)

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

控制台将 %windir% 环境变量“解析”为正确的路径。您需要使用上述函数在您的应用程序中执行相同的操作。

Just have a closer Look at the Class Environment. The Environment Variable is SystemRoot, so you can use
Environment.GetEnvironmentVariable("windir") (or something like that)

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

The console "Resolves" the %windir% environment variable to the correct path. You need to use the above function to do the same within your application.

难如初 2024-09-13 21:44:38

使用Environment.GetEnvironmentVariable("windir");

所以你可以这样声明:

public static readonly string NOTEPAD = Environment.GetEnvironmentVariable("windir") + "\\notepad.exe";

Use Environment.GetEnvironmentVariable("windir");

So you could declare it like this:

public static readonly string NOTEPAD = Environment.GetEnvironmentVariable("windir") + "\\notepad.exe";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文