我想檢查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. os.path.isdir()即使在文件夾存在時也會返回False
- 3. file.delete()返回false,即使文件可寫
- 4. File.exist?始終返回false,即使文件不存在
- 5. 即使文件存在,file.exists()方法也會返回false
- 6. Imagejpeg返回false但文件存在
- 7. file_exists()返回false,但該文件存在
- 8. 當文件存在時,File.Exists返回false
- 9. 文件存在總是返回false
- 10. asp fileExists always returns false
- 11. Ping返回false即使網站在線
- 12. 即使文件存在於我的linux上,php file_exists也會返回false
- 13. 即使驅動器存在,powershell test-path也會返回false
- 14. 即使目錄存在,nant directory :: exists也會返回false
- 15. exif_read_data()即使元數據存在於jpeg中也會返回false
- 16. Laravel輸入:: hasFile(「圖像」)返回false,即使文件被上傳
- 17. 焦點即使在事件返回false(取消事件)去除
- 18. Rapidjson:doc.IsObject()在解析後返回false,即使doc.GetType()返回kObjectType
- 19. 文件是在返回false的文件
- 20. 頁面刷新即使返回false
- 21. 即使是dir,is_dir也會返回false?
- 22. 循環,即使應該返回false
- 23. password_verify即使正確返回false
- 24. 即使附件存在,Exchange EWS的「HasAttachment」屬性也會返回False
- 25. Model :: save()返回false,即使所有數據都正確保存
- 26. 爲什麼返回false即使執行存儲過程
- 27. Contains()返回false,即使它應該返回true
- 28. 即使返回false,SQL也會返回true
- 29. C#File.Exist(File_Path)即使File_Path爲true,文件也存在,並且我有權訪問該文件,但返回false
- 30. Tensorflow:tf.gfile.Exist和Env :: FileExists返回True,空文件名
我猜「權限」問題。 Vista/Windows 7對於讓人們在\ windows :)中非常保護:) – paulsm4
@ paulsm4:不,那不可能。 Windows會一直讓你知道文件是否存在。 –