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

您(或您的应用程序)似乎没有适当的权限打开文件。检查并确保您可以通过文件系统自己访问文件,听起来您可能不能。

[编辑]那么你有读取文件的权限吗?奇怪的。一定要试试下面的方法,直到你从抛出的异常中获得更多细节,你才会知道到底发生了什么。[/edit]

试试这个:

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 资源管理器中选择文件夹并授予“用户”组读取它的权限。这是一个开始的地方

于 2011-02-15T01:45:27.250 回答