2010-12-11 7 views
1

みんな。私はMono 2.4、Ubuntu 10.10で小さなASP.NET Mvcプロジェクトを開発しています。オブジェクトの配列があり、それぞれが特定のxmlファイルに対応しています。 xmlの読み込みは、XmlTextReaderを使用して実行されます。 XmlTextReader( "System.ArgumentException: Encoding name 'cp866nav' not supported")ではサポートされていない、まれな "cp866nav"エンコーディングがXMLファイルに含まれているため、これは機能しません。しかし、xmlヘッダのエンコーディングが "cp866"に変更されてもうまく動作します。XMLファイルを解析中にエンコードの問題

XmlTextReader reader = new XmlTextReader(new StreamReader(Server.MapPath(filename), Encoding.GetEncoding("cp866"))); 

問題は、xmlファイルを含むディレクトリが読み取り専用であることである(下記のコードのように私は、特定のエンコーディングでのStreamReaderの代わりに、ファイル名を指定してXmlTextReaderクラスを初期化することから成る液の種類を見つけました私はそれを変更することはできません)ので、 "System.UnauthorizedAccessException: Access to the path '' is denied."を取得します。 XmlTextReaderはファイル名で初期化されているため、ファイルを読み取っているようです。

プログラムはファイルを変更または作成できないと考えていますか?

答えて

0

あなたの問題はエンコードではなくファイルへのアクセスであるため、適切なフラグFileStream(name、FileMode.Open、FileAccess.Read)を使用してストリームをyourslefとして開き、Streamをとる他のコンストラクタStreamReaderを呼び出すことをお勧めします。

(完了したらストリーム/リーダーを処分することを忘れないでください)。