C # Проблема запуска WPF - PullRequest
       23

C # Проблема запуска WPF

1 голос
/ 15 февраля 2011

Возникли некоторые проблемы в моем приложении WPF с использованием Visual Studio 2010, сборка на C #.В настоящий момент возникает ошибка:

Исключение 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.

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Кажется, у вас (или вашего приложения) нет необходимых прав для открытия файла. Проверьте и убедитесь, что вы можете получить доступ к файлу самостоятельно через файловую систему, похоже, вы не можете.

[править] У вас есть разрешение на чтение файла? Странный. Тогда обязательно попробуйте следующее, вы не будете точно знать, что происходит, пока не получите больше подробностей из создаваемого исключения. [/ 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, когда вы доберетесь до нее и прочитаете сообщения об ошибках, она должна дать вам больше информации о том, что происходит. Надеюсь, это поможет!

0 голосов
/ 15 февраля 2011

Примечание. Если вы видите файл через проводник Windows, возможно, это проблема с правами администратора.

Попробуйте запустить Visual Studio от имени администратора (щелкните правой кнопкой мыши на его значке и выберите «Запуск от имени администратора»") и посмотрите, поможет ли это.

В качестве альтернативы вы можете выбрать папку в проводнике Windows и дать группе« Пользователи »разрешение на ее чтение. Вот с чего начать

...