2013-01-10 57 views
2

我知道這個問題似乎很奇怪。Streamwriter會拋出一個system.argumentexception

我使用.NET Micro Framework在C#中編寫一個小程序,該程序使用默認模擬器在模擬器上使用5個按鈕來模擬閃光燈,並使用interruptport來引發事件。

我編碼,所以當我按下底部按鈕時,存儲在一個數組列表使用日誌中的所有記錄將被打印到一個txt文件。非常簡單明瞭,我做了一個StreamWriter實例

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

但隨後拋出這一行「類型‘System.ArgumentException’發生在System.IO.dll未處理的異常」。

我無法解決這個問題,我不明白爲什麼這裏有一個參數異常。該代碼對Visual C#中的控制檯項目工作正常,但它不在Micro Framework中。

+0

抓住異常並顯示'ex.ToString()',你可能有一個很大的線索。 –

+0

這就是它所說的「在System.IO.dll中發生類型'System.ArgumentException'的未處理異常」。當ex.ToString()它說System.Argumentexception –

+0

然後檢查內部異常。在這種情況下,應該有一個 - 同樣的處理。直到你到底。 – TomTom

回答

1

您遇到的問題是因爲Windows和MicroFramework之間的FileSystem不同。我能夠通過使用一些目錄函數來確定可用的導演,從而在模擬器上運行它。

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做到了。

相關問題