1

Visual Studio 2010 を使用して C# でビルドしている WPF アプリケーションで問題が発生しました。現時点で発生するエラーは次のとおりです。

SecurityException がユーザー コードによって処理されませんでした

以下は、ボタンをクリックしたときのコードです。テキスト ファイルのサイズをチェックし、ボリュームがあるかどうかを「ButtonToday」というボタンの背景に色付けします。

private void Button_Click(object sender, RoutedEventArgs e)
{
    //Gets current date and puts it into string.
    string today = DateTime.Now.ToString("yyyy.MM.dd");
    string yesterday = DateTime.Now.AddDays(-1).ToString("yyyy.MM.dd");

    TextBoxToday.Text = "" + today;
    TextBoxYesterday.Text = "" + yesterday;
    FileInfo f = new FileInfo("D:\\Client1\\2011.02.14.log");
    {
        if (f.Length > 0)
            ButtonToday.Background = Brushes.Green;
        else
            ButtonToday.Background = Brushes.Red;
    }
}

助けてくれてありがとう。私はn00bです。

4

2 に答える 2

2

あなた (またはあなたのアプリケーション) には、ファイルを開く適切な権限がないようです。ファイルシステムを介して自分でファイルにアクセスできることを確認してください。おそらくできないようです。

[編集]ファイルを読み取る権限がありますか? 奇数。間違いなく以下を試してみてください。スローされた例外から詳細を取得するまで、何が起こっているのか正確にはわかりません.[/編集]

これを試して:

private void Button_Click(object sender, RoutedEventArgs e)
{
    //Gets current date and puts it into string.
    string today = DateTime.Now.ToString("yyyy.MM.dd");
    string yesterday = DateTime.Now.AddDays(-1).ToString("yyyy.MM.dd");
    TextBoxToday.Text = "" + today;
    TextBoxYesterday.Text = "" + yesterday;

     try
     {
         FileInfo f = new FileInfo("D:\\Client1\\2011.02.14.log");
         {
             if (f.Length > 0)
                 ButtonToday.Background = Brushes.Green;
             else
                 ButtonToday.Background = Brushes.Red;
         }
     }
     catch ( SecurityException ex )
     {
         ex.Message;
     }
}

行の上にブレークポイントを置き、ex.Message;デバッグ モードでプログラムを実行します。変数exにカーソルを合わせてエラーメッセージを読むと、何が起こっているのかについての詳細がわかるはずです。お役に立てれば!

于 2011-02-15T01:42:11.917 に答える
0

注: Windows エクスプローラーでファイルを表示できる場合は、管理者権限の問題である可能性があります。

Visual Studio を管理者として実行してみて (アイコンを右クリックし、[管理者として実行] を選択)、それが役立つかどうかを確認してください。

または、Windows エクスプローラーでフォルダーを選択し、"Users" グループに読み取り許可を与えることもできます。ここから始めましょう

于 2011-02-15T01:45:27.250 に答える