Jump to content

System.IO.File.Exists (A devolver 'False' quando existe)


Hitmanpt
 Share

Recommended Posts

Boas pessoal... bem tenho este simples codigo

 
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        MessageBox.Show(System.IO.File.Exists("C:\Windows\System32\wll\winlogon_cmd_settings.wll"))
End Sub

Mas tendo esse mesmo ficheiro nesse local e estando a executar a aplicação como administrador continua a dizer que o ficheiro nao existe... já verifiquei o directorio e nome de ficheiro e esta tudo certo... não consigo perceber o facto de me estar a devolver falso (nao existente)

Alguma ideia?

Link to comment
Share on other sites

Pode ser dar o caso da aplicação não ter acesso ao ficheiro, devido às permissões (está na pasta do Windows). Se correres o ficheiro com privilégios administrativos, continua a dizer que o ficheiro não existe?

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Tens a certeza de que o ficheiro existe, ou que consegues lá chegar com o explorador do Windows?

Experimenta com o namespace FileIO

MessageBox.Show(FileIO.FileSystem.FileExists("C:\Windows\System32\wll\winlogon_cmd_settings.wll"))
Alternativamente, verifica se o FileLen te consegue devolver alguma coisa
MessageBox.Show(FileSystem.FileLen("C:\Windows\System32\wll\winlogon_cmd_settings.wll"))

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Bem, aparentemente, para a .NET, esse ficheiro não existe... (pressupondo condições normais do teu ambiente)

Nunca tinha visto nada assim.

Se encontrar alguma explicação, aviso.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

👍 É.

Aplicações x86 não têm acesso a pastas de sistemas 64-bit da mesma forma que teriam em x86, ou 64 em 64.

Ou seja, ele não está a procurar efectivamente em Windows\System32, mas noutro sítio qualquer, como acontece com o Program Files (x86).

O System32 deve ter outro nome também.

Procura na pasta do Windows algo parecido com System64 ou algo assim.

É provavelmente aí que está a cair.

(não te posso verificar isso. Não tenho sistema de 64bit)

EDIT: Uma pesquisa rápida mostrou-me SysWOW64 [Windows(32) On Windows(64)]

Verifica lá se tens essa pasta.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.