我想检查System32目录(Windows 7)中是否存在dll。但即使存在,FileExists()也会返回false。 LoadLibrary返回一个有效的句柄。 在这种情况下,我只想检查文件是否存在并可视化这些信息。 你有任何提示来解决这个问题吗?FileExists()返回false,即使文件存在
回答
这很可能是文件重定向。你有一个64位的机器,但是从32个Delphi过程中,Windows\system32
实际上重定向到Windows\Syswow64
。因此,当您认为您要求存在Windows\system32
中的文件时,系统实际上报告Windows\Syswow64
中文件的存在(或其他方式)。
如果您确实需要查看真正的64位system32,那么您需要禁用文件重定向。你可以用Wow64DisableWow64FsRedirection()
函数来做到这一点。不要忘记用Wow64RevertWow64FsRedirection()
重新开启它。请注意,禁用重定向器具有广泛的影响,并可能导致非常奇怪的行为,因此请谨慎行事。
这更像它。 (嗯,这个和一些愚蠢的错字,当然......) –
现在我想到了,我99%是这个问题。 +1,绝对是。 –
是的,可能是这样的,过去我有类似的东西,奇怪的是我的总指挥官也给我看了重定向的文件夹,有人告诉我这是因为它是32位,一切都很清楚(你仍然可以禁用重定向那里)。无论如何,只是检查了TC网站,现在有一个64位测试版。 – balazs
你几乎肯定没有在你的FileExists
调用中指定文件的完整或有效的相对路径。 LoadLibrary
会搜索某些位置(dll预计驻留的位置),但FileExists
不会。提供完整且正确的路径,并且FileExists
将正常工作。
- 1. 即使文件存在,symfony也存在返回false?
- 2. 即使文件存在,file.exists()方法也会返回false
- 3. Imagejpeg返回false但文件存在
- 4. 文件存在总是返回false
- 5. asp fileExists always returns false
- 6. 即使文件存在于我的linux上,php file_exists也会返回false
- 7. 即使目录存在,nant directory :: exists也会返回false
- 8. exif_read_data()即使元数据存在于jpeg中也会返回false
- 9. Laravel输入:: hasFile(“图像”)返回false,即使文件被上传
- 10. 焦点即使在事件返回false(取消事件)去除
- 11. Rapidjson:doc.IsObject()在解析后返回false,即使doc.GetType()返回kObjectType
- 12. password_verify即使正确返回false
- 13. 即使附件存在,Exchange EWS的“HasAttachment”属性也会返回False
- 14. Model :: save()返回false,即使所有数据都正确保存
- 15. 为什么返回false即使执行存储过程
- 16. Contains()返回false,即使它应该返回true
- 17. Tensorflow:tf.gfile.Exist和Env :: FileExists返回True,空文件名
- 18. FileInfo.Exists在复制文件后返回False
- 19. 访问总是返回-1,即使该文件存在
- 20. 即使文件存在,php dir函数也会返回null
- 21. 即使文件不存在,File.Exists也会返回true
- 22. 乌节CMS:JavaScript文件返回404未找到,即使它存在
- 23. 即使验证电子邮件后,Firebase isEmailVerified也会返回false
- 24. Python的检查文件是否存在(返回false,应返回true)
- 25. 确认对话框返回false立即
- 26. PHP File Exists返回false;当文件不实际存在
- 27. PHP file_exists返回false,但该文件确实存在
- 28. 对于不存在的文件,file.delete()是否返回true或false?
- 29. 文件存在但java file.exists()但返回false
- 30. file_exists()返回false,即使对于存在的路径也是如此
我猜“权限”问题。 Vista/Windows 7对于让人们在\ windows :)中非常保护:) – paulsm4
@ paulsm4:不,那不可能。 Windows会一直让你知道文件是否存在。 –