Streamwriter выдает исключение system.argumentexception

Я знаю, что этот вопрос кажется странным.

Я использую .NET Micro Framework для написания небольшой программы на C#, которая использует эмулятор по умолчанию для эмуляции фонарика с помощью 5 кнопок на эмуляторе, используя прерывание для вызова событий.

Я закодировал так, что когда я нажимаю нижнюю кнопку, все записи, хранящиеся в журнале использования массива, будут распечатаны в текстовый файл. Очень просто и понятно, я сделал экземпляр Streamwriter

StreamWriter sw = new StreamWriter(@"c:\temp.txt");

Но затем он выдает «Необработанное исключение типа« System.ArgumentException »в System.IO.dll» в этой строке.

Я не могу это исправить и не могу понять, почему здесь есть исключение аргумента. Код отлично работает для консольного проекта в Visual C#, но не в Micro Framework.


person Nguyen Le Bang Linh    schedule 10.01.2013    source источник
comment
Перехватите исключение и отобразите ex.ToString(), и у вас может быть важная подсказка.   -  person John Saunders    schedule 10.01.2013
comment
это все, что он говорит Необработанное исключение типа «System.ArgumentException» произошло в System.IO.dll. когда ex.ToString() он говорит System.Argumentexception   -  person Nguyen Le Bang Linh    schedule 10.01.2013
comment
Затем проверьте внутреннее исключение. В этом случае должно быть одно и то же лечение. Пока не докопаетесь до сути.   -  person TomTom    schedule 10.01.2013
comment
Шиш. Что случилось с идеей быть хорошим! blog.stackoverflow.com/2012/07/kicking-off-the-summer -из-любви   -  person David    schedule 10.01.2013
comment
MSDN заявляет, что ArgumentException создается только в конструкторе, который вы используете, если: 1) строка пуста или 2) строка указывает на нефайловый ресурс. Возможно, эмулятор принимает № 2?   -  person Simon Whitehead    schedule 10.01.2013


Ответы (1)


Проблема, с которой вы столкнулись, заключается в том, что файловая система отличается между Windows и MicroFramework. Мне удалось запустить его на эмуляторе, используя некоторые функции каталогов для определения доступных каталогов.

public static void Main()
{
    string  d = Directory.GetCurrentDirectory();
    string[] directorys = Directory.GetDirectories(d);
    foreach (var item in directorys )
    {
        Debug.Print(item);
    }

    try
    {
        using (StreamWriter sw = new StreamWriter("\\WINFS\\temp.txt"))
        {
            sw.WriteLine("Good Evening");
            sw.Close();
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }

}

В эмуляторе я придумал

 [0]: "\\ROOT"
 [1]: "\\WINFS"

ROOT не сработало, а WINFS сработало.

person Mark Hall    schedule 10.01.2013