1

为什么我会收到“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);
            }
        }
4

3 回答 3

1

在发生这种情况的系统上,登录的用户可能没有读取或写入权限(很可能是读取权限,因为如果您可以创建目标目录,则可以对其进行写入)。更多信息FileIOPermission可以在 msdn上找到。

于 2009-09-10T12:36:22.240 回答
1

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

于 2009-09-10T12:37:17.063 回答
1

Installing .net 3.5 fixes the problem (changes the default FileIOPermissions on the local machine to grant permission to applications run over the network)

于 2009-11-12T07:26:28.227 回答