• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Bjecas

UnauthorizedAccessException: Como conseguir permissão para aceder a pastas?

5 mensagens neste tópico

Boas!

Estou a experimentar C# (Visual C# 2008 Express), e estou a ter problemas a aceder a algumas pastas.

Preciso de obter uma listagem dos ficheiros contidos numa pasta seleccionada pelo utilizador (incluindo todas as subpastas), mas ocorre frequentemente uma excepção do tipo UnauthorizedAccessException ao usar System.IO.DirectoryInfo.GetDirectories()

Alguma ideia sobre como posso conseguir as permissões necessárias?

Cumps,

Bjecas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estas no Vista? Se sim, tens de executar a aplicação em modo de administrador. Se isso também acontece no XP, então não sei qual será o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estas no Vista? Se sim, tens de executar a aplicação em modo de administrador. Se isso também acontece no XP, então não sei qual será o problema.

Estou a desenvolver no Vista; ainda não tive oportunidade de testar em XP, embora tenha como requerimentos a versão 2.0 do .NET runtime.

Há pastas que não consigo aceder com o programa, embora consiga através do windows explorer. Pelo que estive a ler, parece que as aplicações .NET correm com as permissões de um utilizador especial; embora isto possa ser bom em termos de segurança, é uma chatice para quem quer desenvolver uma aplicação.

Não queria correr o programa como administrador, por várias razões - segurança é a principal, mas além disso tem implicações negativas na percepção do utilizador - o que o programa faz não precisa de aceder a pastas de sistema (normalmente), apenas a pastas pessoais do utilizador que executa o programa.

Ou seja, gostava que o programa tivesse as mesmas permissões que o utilizador que o corre. Há alguma forma de conseguir isso, ou de dar a volta à situação sem pedir privilégios de administrador?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes dar um exemplo de um directório onde o System.IO.DirectoryInfo.GetDirectories() falhe no teu sistema para eu testar deste lado?

Quanto a isso das aplicações .NET correrem com permissões de um utilizador especial, não tenho a certeza mas não deve ser bem assim tão linear. Ou seja, talvez corram em debug ou algo do género, mas quando publicas o .exe principal da versão "Release" ele vai correr com permissões normais como outra aplicação qualquer. Posso estar errado mas acho que é isto que acontece...

Sempre tens a hipótese de fazer o que toda a gente faz, colocar o "shield" do UAC num botão e a partir dai, executas essa instrução como administrador. E algo me diz que não vais ter outra solução se não esta...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora