C#File.Exist(File_Path)返回false,即使File_Path为true,文件存在且我有权访问该文件

时间:2013-07-25 08:34:33

标签: c#

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

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

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

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

返回false

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

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

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

2 个答案:

答案 0 :(得分:4)

当我在x86配置中执行File.Exists时,我有相同的结果,但是当我在64时,这两个文件返回true,我在网上发现你的案例中的File.Exists在SysWOW64中搜索,检查这个问题更多:check if file exist on 64 bits system using File.Exists

答案 1 :(得分:0)

我修复了在使用我的域凭据创建的映射上检查文件时发生的类似问题。我作为管理员调试VS.我能够通过Windows资源管理器导航到该文件,但不能使用VS.

当我关闭VS管理员模式并正常重新启动它时,我解决了这个问题。