誰かが同様の問題を抱えているのだろうかと思います。File.CopyがUnauthorizedAccessExceptionをスローする
私は以下のように簡略化することができる私のアプリケーションに単純なファイルコピーコードを持っています(そして、VS2013を開いてコードをデバッグするための私のユーザはソースとターゲットの両方のフォルダ階層をフルコントロールできます何らかの理由で、私はこのコードは、私まで幸せに働いていた
// sourcefile was thought to be @"C:\tfs\Dev\Source\some-module\bin\Debug\mybinary.dll";
// retrieved through an environment variable, but was pointing to the folder instead of the file inside
Directory.CreateDirectory(myfolder);
File.Copy(sourcefile, Path.Combine(myfolder, Path.GetFileName(sourcefile)), true);
)その後、私は手動でユーザーにフルコントロールを適用し、とにかくエラーがソースフォルダを訴え、動作しませんでした管理者モードでVSを実行してみました今日私のローカルマシンで試してみました(私のテストベッドマシンではまだ動作しています)。それは私が再起動し、それが再び新たが、失敗した試みたファイルロックの問題かもしれ考える
System.UnauthorizedAccessException: Access to the path 'C:\tfs\Dev\Source\some-module\bin\Debug' is denied.
Result StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
:しかし、いくつかの理由で、それは下のエラーを投げ始めました。
ソースのフォルダに読み取り専用の属性があり、これが問題(これは不思議です)だと思って、私はそれを解除しようとしましたが、できません。次に、フォルダをtfsワークスペースから別のフォルダ(c:\ users \ my-user ..)に移動しましたが、読み取り専用属性を削除できませんでした(動作しているようですが、ファイル)。私は狂って、すべての親フォルダに読み込み専用を設定しないようにしてみました。元の問題とは何ら関係してはいけません。
私も同様の質問と思考を再確認し、オプションが不足しています。
Win7、.net 4.5.2、VS2013はいくつかの設定です。
追加実験、私は現在のユーザーに完全なアクセス許可とセキュリティルールでsourcefileのディレクトリにDirectory.CreateDirectory使用してみました を更新し、何も変わりません。それはなぜ始まるべきsourcefileディレクトリに関して不平を言うでしょうか?
これは、現在のユーザーにそのディレクトリに書き込む権限がないことを意味します。最初に、アプリケーションを実行しているユーザーアカウントのアクセス許可を設定します。 –
提案:a)宛先にチェックファイルが存在しません。 b)1秒スリープして、AVがファイルをスキャンして一時的にブロックするアクセスを再試行します。 –
Niranjan、私はユーザーに完全な制御について最初の段落に言及しました。ホルヘ、AVに関する良いアイデア、私はそれをチェックします! – MattAPiroglu