Laden...

StreamReader IO Exception

Erstellt von macke_a vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.419 Views
M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 13 Jahren
StreamReader IO Exception

Hallo !
Ich erzeuge auf einer SD Karte die Datei Einstellung.ini.

Jetzt möchte ich mit dem StreamReader daraufzugreifen,
bekomme aber eine IO Exception zurück mit dem Vermerk: {"An error message cannot be displayed because an optional resource assembly containing it cannot be found"}

 System.IO.File.Create("/SD Card/Folder/Einstellung.ini");
 StreamReader sw = new StreamReader("/SD Card/Folder/Einstellung.ini",Encoding.GetEncoding(1252));

Jemand ne Idee, warum dies so ist?

Gruss macke_a

Gelöschter Account
vor 13 Jahren

klingt so als ob er seine language satelitenassemblies nciht finden kann.... allerdings weiß ich jetzt nciht,warum er nciht einfach den fallback nimmt... evtl sind die ja auch weg?

was hast du mit der maschine denn gemacht?

vorsichtshalber würde ich das framework neu installieren.

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 13 Jahren

Ganz ehrlich, ich verstehe wirklich nicht warum das System auch ohen Angabe der Kodierung eine IO Exception auswirft.

System.IO.File.Create("/SD Card/CBR Einstellungen/Einstellungen.ini");
                        StreamReader sw = new StreamReader("/SD Card/CBR Einstellungen/Einstellungen.ini");

Gibt es eventuell eine Möglichkeit beim File.Create(..) Attribute zu ändern?

was hast du mit der maschine denn gemacht?

In meinem Programm ist das die zweite Codezeile, mehr als die Datei zu erzeugen und den leeren Inhalt soll das kleine Stück Software nicht machen...

Gruss macke_a

S
8.746 Beiträge seit 2005
vor 13 Jahren

Im Compact Framework sind die allermeisten Ressourcen ( in diesem Fall die Exception-Texte) in einem sprachabhängigen Assembly (SystemSR.dll) zusammengepackt. Diese ist standardmäßig nicht im SDK. Fehlt dieses Assembly, sieht man bei vielen Exceptions nur den Namen und diesen Text als Message.

Für die Entwicklung empfiehlt sich daher, diese DLL per Hand mit in das Ausführungsverzeichnis der Anwendung zu packen. Dummerweise bekommt man die DLL nicht so leicht. Ich habe sie mir per Hand und einem CAB-File-Entpacker aus der CF-Installation geprockelt.

Ansonsten: Verwende doch mal "" anstelle von "/".

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 13 Jahren

Hi !

Ansonsten: Verwende doch mal "" anstelle von "/"

Leider hat dies auch nicht weitergeholfen bzw. die IO Exception tritt weiter hin auf...

Ich suche nun der SystemSR.dll, vielleicht komme ich dem Fehler so auf die Spur...

Für weitere Anregungen bin ich dankbar...

Gruss macke_a

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 13 Jahren

Hallo !

Ich habe die Lösung. Zuerst den StreamWriter und anschließend den StreamReader aufrufen, dann ist das Problem behoben...

System.IO.File.Create("/SD Card/Folder/Einstellung.ini");
StreamWriter sw = new StreamWriter("/SD Card/Folder/Einstellung.ini",Encoding.GetEncoding(1252));

Gruss macke_a

F
10.010 Beiträge seit 2004
vor 13 Jahren

Oder mal schauen was der StreamWriter tut, wenn man ihn benutzt.

Dein Create ist vollkommen unnötig.