Voglio verificare se esiste una dll nella directory System32 (Windows 7). Ma anche se esiste, FileExists() restituisce false. LoadLibrary restituisce un handle valido. In questo caso, voglio solo controllare, se i file esistono e visualizzare queste informazioni. Hai qualche consiglio per risolvere questo?FileExists() restituisce false, anche se il file esiste
risposta
Molto probabilmente si tratta di reindirizzamento del file. Si dispone di una macchina a 64 bit, ma dal processo 32 Delphi, Windows\system32
in realtà reindirizza a Windows\Syswow64
. Quindi, quando pensi di chiedere l'esistenza di un file in Windows\system32
, il sistema sta effettivamente segnalando l'esistenza (o meno) di un file in Windows\Syswow64
.
Se è davvero necessario vedere nel vero sistema a 64 bit32, è necessario disabilitare il reindirizzamento dei file. Puoi farlo con la funzione Wow64DisableWow64FsRedirection()
. Non dimenticare di riaccenderlo con Wow64RevertWow64FsRedirection()
. Fai attenzione che disabilitare il redirector ha effetti di ampia portata e può portare a comportamenti molto strani, quindi fallo con cura.
Questo è più simile. (Bene, questo e qualche errore di battitura, ovviamente ...) –
Ora che ci penso, sono al 99% questo è il problema. +1, sicuramente. –
Sì, probabilmente questo è il caso, in passato avevo qualcosa di simile, lo strano era che il mio comandante totale mi mostrava anche la cartella reindirizzata, dopo che qualcuno mi ha detto che è a 32 bit tutto era chiaro. (Puoi comunque disabilitare il reindirizzamento Là). Comunque ho appena controllato il sito TC, ora c'è una beta a 64 bit. – balazs
Non ci sono molte informazioni da seguire, il codice che si sta utilizzando potrebbe essere d'aiuto, ma potrebbe trattarsi di un problema a 64 bit e la dll si trova effettivamente nella cartella SysWOW64? Vedi here per una buona descrizione di come funziona.
E un +1 anche qui, ovviamente. –
Quasi certamente non si specifica il percorso relativo completo o valido del file nella chiamata FileExists
. LoadLibrary
cercherà alcune posizioni (quelle in cui ci si aspetta che le DLL risiedano) per te, ma non lo sarà lo FileExists
. Fornire il percorso completo e corretto e FileExists
funzionerà correttamente.
- 1. C#: Process.HasExited restituisce false, anche se il processo è terminato
- 2. os.path.isdir() restituisce False anche quando esiste la cartella
- 3. Rimuovere il file se esiste
- 4. TryParseExact restituisce false, anche se non so perché
- 5. Java - file.length() restituisce anche se il file non è leggibile
- 6. SPSite.Exists() restituisce true anche se la raccolta siti non esiste
- 7. laravel ingresso :: hasFile ('immagine') restituisce false, anche se un file viene caricato
- 8. python come "negare" valore: se true restituisce false, se false restituisce true
- 9. Utilizzando Ajax e jQuery per verificare se il file esiste - restituisce sempre 200 risposta
- 10. Perché "[] == False" restituisce False quando "se non []" ha esito positivo?
- 11. Campo di Sitecore.HasValue restituisce false, anche quando c'è un valore?
- 12. NodeJs Passport isAuthenticated() restituisce false anche dopo l'accesso
- 13. Perché il ritorno 'File.exists' vero, anche se '' Files.exists in classe il NIO 'Files' restituisce falso
- 14. Orchard CMS: file JavaScript restituisce 404 non trovato, anche se esiste
- 15. Perché False == False in [False] restituisce True?
- 16. Verifica se il file di risorse esiste
- 17. get_browser() restituisce FALSE
- 18. Se il file esiste e non è vuoto. mi dà sempre il valore false
- 19. context.Database.Exists restituisce sempre true, anche se manca il file di database
- 20. PHP defined() perché restituisce false, anche se la costante è definita?
- 21. sd.canWrite() restituisce sempre false
- 22. PHP file_exists() restituisce false su alcuni file
- 23. URLForUbiquityContainerIdentifier restituisce nil anche se configurato correttamente
- 24. PHP is_writable() restituisce true ma file_put_contents() restituisce false
- 25. Python path.exists() che restituisce False
- 26. Perché String.Equals restituisce false?
- 27. Rcurl: url.exists restituisce false quando URL non esiste
- 28. os.path.isfile() restituisce false per file Windows esistente
- 29. prova se il file esiste
- 30. FBSession.activeSession.isOpen restituisce NO anche se l'utente ha effettuato il login
Sto indovinando il problema dei "permessi". Vista/Windows 7 è molto protettivo nel permettere alle persone di andare in giro in \ windows :) – paulsm4
@ paulsm4: No, non può essere quello. Windows ti consente sempre di scoprire se un file esiste o meno. –