System.Security.Permission.FileIOPermission
-
05-07-2019 - |
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);
}
}
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.