2

右クリックメニューを使用してファイルを手動で削除すると、ファイルが削除されます。

しかし、このコードを実行すると:

string[] filePaths = Directory.GetFiles(@"c:\My cloud\VM Instances\");
foreach (string filePath in filePaths)
     File.Delete(filePath);

このエラーが発生しました:

「タイプ 'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました。パス 'c:\My cloud\VM Instances\i-7e3cbb19 (manish).cvm' へのアクセスが拒否されました。スレッド '' (0xb5c)はコード 0 (0x0) で終了しました。mscorlib.dll 'cloud_sync.vshost.exe' (Managed (v4.0.30319)) でタイプ 'System.UnauthorizedAccessException' の最初の機会の例外が発生しました: ロードされた 'C:\WINDOWS\Microsoft. Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'、シンボルの読み込みをスキップしました。モジュールは最適化されており、デバッガ オプション 'Just My Code' が有効になっています。"

それで、私は何をすべきですか?

4

1 に答える 1

7

コードが実行しているプロセスには、対話型ログイン プロセスとは異なるアクセス許可があります。大きなヒントは、UnauthorizedAccessException.

これはウェブサイトですか?その場合、ASPNET ワーカー プロセスは、設計上、既定で非常に制限されたアクセス許可を持っています (既定値から大きく外れると危険です)。

これは Windows サービスですか? その場合、デフォルトでは、権限が非常に制限されたユーザーとしても実行されます。

于 2012-04-13T19:23:20.907 に答える