-1

私はこの方法を持っています

 public void Copy(string sourcePath, string destPath)
 {
     string[] files= Directory.GetFiles(sourcePath);
     for (int i = 0; i < files.Length; i++)
     {
         try
         {
             File.Copy(files[i], destPath);
         }
         catch
         {
             try
             {
                 File.Replace(files[i], destPath, null);
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
         }
    }
}

実行すると、不正なアクセス例外が発生し、アクセスが拒否されました! これで何か助けて!

4

2 に答える 2

3

この例外は、File.Copy のドキュメントで説明されています。

The caller does not have the required permission.
-or-
destFileName is read-only.

最初のコピー後にファイルの属性を確認してください。パーミッションは期待どおりですか? プログラムを昇格して (管理者として) 実行する必要がありますか?

于 2014-05-05T09:42:47.797 に答える
1

以下の理由が考えられます:

sourceFileName または destinationFileName パラメーターは、読み取り専用のファイルを指定します。

- または - この操作は、現在のプラットフォームではサポートされていません。

- または - ソースまたは宛先のパラメーターは、ファイルの代わりにディレクトリを指定します。

- または - 呼び出し元に必要なアクセス許可がありません。

リンクを読む: http://msdn.microsoft.com/en-us/library/9etk7xw2(v=vs.110).aspx

于 2014-05-05T09:49:55.823 に答える