gpt4 book ai didi

.net - System.IO.File.Exists(@"C:\Windows\System32\SnippingTool.exe") 返回 false

转载 作者:行者123 更新时间:2023-12-04 16:48:26 25 4
gpt4 key购买 nike

所以我正在开发一个简单的 .NET 工作程序,但遇到了一些我无法弄清楚的奇怪障碍。该应用程序利用配置文件将应用程序添加到下拉菜单。但是,在将其添加到菜单之前,它会执行 system.io.file.exists 以验证该文件是否存在,至少在创建菜单时是这样。

但是, System.IO.File.Exists(@"C:\Windows\System32\SnippingTool.exe") 返回 false,但可执行文件在那里。同样,stikynot.exe 也返回 false。 system32 目录中的其他文件返回 true(如记事本)。我可以对这些应用程序进行文件统计,但我的 .net 程序无法读取它们并且 system.io.file.exists 返回 false。我已经检查了各种权限,但没有运气。它似乎与一些应用程序隔离,但我不确定为什么。

最佳答案

这是 64 位 Windows 的一个特性。

在 x64 中,您有两个包含系统文件的文件夹: system32 SysWOW64 .

如果您在 中放入任何东西system32 ,它会被所有人看到 64 位 应用程序。 SysWOW64 是否出于兼容性原因 - 放在那里的任何内容都可以通过 看到32 位 (原文如此!)应用程序。

因此,就 .NET 而言,该文件不存在。它适用于记事本,因为这两个目录中都存在 notepad.exe。

您可以测试此行为。在其中一个目录中创建一个文本文件,但不在另一个目录中,并检查它是否存在。然后在 x86 和 x64 之间更改您的项目配置(右键单击解决方案 -> 配置管理器)并享受结果。

关于.net - System.IO.File.Exists(@"C:\Windows\System32\SnippingTool.exe") 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com