代码之家  ›  专栏  ›  技术社区  ›  Karl

system.security.permission.fileiopermission

  •  1
  • Karl  · 技术社区  · 16 年前

    为什么会出现“System.Security.Permission.FileIOPermission”错误?下面是我的整个计划。这非常简单。它只需要创建一个文件夹的副本。它在我的个人电脑和同事的个人电脑上工作,但对某些人来说,它给出了上面的错误。

    有什么想法吗?

            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);
                }
            }
    
    3 回复  |  直到 10 年前
        1
  •  1
  •   TheVillageIdiot    16 年前

    在发生这种情况的系统上,登录的用户可能没有读或写权限(很可能是读的,因为如果可以创建目标目录,则可以对其进行写操作)。有关的详细信息 FileIOPermission 可以找到 here at msdn .

        2
  •  1
  •   PVitt    16 年前

    问题将是不合理的权利。操作系统拒绝访问某个目录,因为运行该程序的用户不允许在该特定目录中创建目录或复制文件。

        3
  •  1
  •   Karl    16 年前

    安装.NET 3.5可以解决此问题(更改本地计算机上的默认FileIOPermissions以授予通过网络运行的应用程序权限)