2

以下のコードで .txt ファイルを作成できません。次のように例外が発生します。

未処理の例外: System.unauthorizedAccessException: パス 'C:\log.txt' へのアクセスが拒否されました。

私はオンラインで見て、APIにあるものと同様のことをしました。以下は私のコードなので、私のロジックの列が何であるかを理解できます。この例外の原因は何だと思いますか? 前もって感謝します!

static StreamWriter swt;
static string logFile = @"C:\log.txt";
static FileStream fs;
static void Main(string[] args)
{
    Console.Out.WriteLine(swt);
    string root =  args[0];                       
     if (!File.Exists(logFile))
     {
         try
         {
             fs = File.Create(logFile);
         }
         catch (Exception ex)
         {
             swt.WriteLine("EXCEPTION HAS BEEN THROWN:\n " + ex + "\n");
         }
         {

         }
     }
 }
4

3 に答える 3

9

標準ユーザーは昇格されたアクセス許可なしではドライブのルートに書き込むことができないため、このエラーが発生する可能性が最も高くなります。ここを参照してください。

于 2013-06-03T13:03:41.463 に答える
2

フォルダーのアクセス許可を検出します。ログインしたユーザーに書き込み権限が必要です。

于 2013-06-03T13:05:34.880 に答える
2

はい、パーミッションエラーです。C: ドライブにファイルを書き込む権限がありません。これらのタイプのフォルダー/ドライブに書き込むには、管理者権限が必要です。

アプリケーションの管理者権限を与えることができます。簡単な方法は、アプリケーションを管理者アカウント/権限のみで開始するように強制することです。これを達成するには

ソリューション エクスプローラー -> プロジェクト -> 新しい項目の追加 (右クリック) -> アプリケーション マニフェスト ファイル。

このファイルrequestedExecutionLevelで、

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

これらは、管理者権限のみでアプリケーションを強制します。Windows 8/7/Vista では、アプリケーションを起動すると UAC (ユーザー アクセス制御) ダイアログ ボックスが表示されます。

これがあなたを助けることを願っています....

于 2013-06-03T13:27:21.810 に答える