1

「System.Security.Permission.FileIOPermission」エラーが発生するのはなぜですか?以下は基本的に私のプログラム全体です。とてもシンプルです。必要なのは、フォルダのコピーを作成することだけです。それは私のPCと私の同僚のPCの数で動作しますが、一部の人にとっては上記のエラーが発生します。

何か案は?

        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

.net 3.5 をインストールすると問題が解決します (ローカル マシンのデフォルトの FileIOPermissions を変更して、ネットワーク経由で実行されるアプリケーションにアクセス許可を付与します)。

于 2009-11-12T07:26:28.227 に答える