Pergunta

Por que recebo um erro "System.Security.Permission.FileIOPermission"? Abaixo é basicamente todo o meu programa. É extremamente simples. Tudo que precisa fazer é criar uma cópia de uma pasta. Ele funciona no meu PC e e número de PCs dos meus colegas, mas para alguns, dá o erro acima.

Todas as idéias?

        public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
        {
            // Check if the target directory exists, if not, create it.
            if (Directory.Exists(target.FullName) == false)
            {
                Directory.CreateDirectory(target.FullName);
            }

            // Copy each file into it’s new directory.
            foreach (FileInfo fi in source.GetFiles())
            {
                Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
                fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
            }

            // Copy each subdirectory using recursion.
            foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
            {
                DirectoryInfo nextTargetSubDir =
                target.CreateSubdirectory(diSourceSubDir.Name);
                CopyAll(diSourceSubDir, nextTargetSubDir);
            }
        }
Foi útil?

Solução 3

Como instalar o .NET 3.5 corrige o problema (Altera o FileIOPermissions padrão na máquina local para conceder permissão para os aplicativos são executados através da rede)

Outras dicas

Nos sistemas onde isso está acontecendo o usuário logado pode não ter lido ou permissões de gravação (provavelmente ler, porque se você pode criar diretório de destino você pode escrever a ele). Mais informações sobre FileIOPermission pode ser encontrada aqui no MSDN .

O problema será direitos insufficent. O sistema operacional nega acesso a um diretório, porque o usuário que executa o programa não é permitido para criar diretórios ou copiar arquivos no diretório particular.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top