2

我正在编写一个将在 Windows 7 上运行的软件。我正在列出已安装的服务、获取服务的映像路径位置并检查服务文件是否存在。(Dll 或 Exe)。

我正在检查文件位置File.Exist(File_Path)。对于某些文件,false即使文件路径为true、文件存在并且我有权访问该文件,它也会返回。

我知道即使该文件存在,如果用户没有访问权限,它也会File.Exist(File_Path)返回 false。

例如,它为文件返回 true,C:\Windows\System32\appmgmts.dll 但它为文件返回 falseC:\Windows\System32\audiosrv.dll

当我在 Windows 资源管理器下查看这两个文件的用户权限时,它们完全相同。但File.Exist(File_Path)为这些文件返回不同的答案。

我正在以管理员身份运行 Visual Studio 和 Exe 文件。

请给我一些关于这种奇怪行为的建议。

4

2 回答 2

4

当我在 x86 配置中执行 File.Exists 时,我得到了相同的结果,但是当我在 64 中时,这两个文件返回 true,并且我在网上发现 File.Exists 在您在 SysWOW64 中的案例搜索中,请检查此问题以获取更多信息:使用 File.Exists 检查文件是否存在于 64 位系统上

于 2013-07-25T08:59:06.657 回答
0

I fixed a similar issue that occurred while checking files over a mapping that I created with my domain credentials. I was debugging VS as an Administrator. I was able to navigate through Windows Explorer to the file but not with VS.

I solved the problem when I closed VS Admin mode and started it normally back again.

于 2015-04-15T15:28:10.430 回答