2010-12-11 6 views
1

모두. 나는 모노 2.4, 우분투 10.10에서 작은 ASP.NET MVC 프로젝트를 개발 중이다. 객체의 배열이 있는데, 각 객체는 특정 XML 파일에 해당합니다. xmlTextReader를 사용하여 xml을 읽습니다. XmlTextReader ("System.ArgumentException: Encoding name 'cp866nav' not supported")에서는 xml 파일에 드문 "cp866nav"인코딩이 지원되지 않으므로 작동하지 않습니다. 그러나 XML 헤더의 인코딩이 "cp866"으로 변경되면 제대로 작동합니다. 문제는 XML 파일이 들어있는 디렉토리가 읽기 전용되는 것을XML 파일을 구문 분석하는 동안 인코딩 문제

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

(: 나는 아래의 코드처럼, 대신 파일 이름의 특정 인코딩으로 위해 StreamReader와 XmlTextReader는 초기화하는 구성 솔루션의 종류를 발견 나는 그것을 바꿀 수 없다), 그래서 나는 "System.UnauthorizedAccessException: Access to the path '' is denied."을 얻는다. 파일 이름으로 초기화 된 XmlTextReader가 파일을 읽는 것 같기 때문에 오히려 이상합니다.

프로그램이 파일을 수정하거나 만들 수 없다고 생각되면 해결책이 있습니까?

답변

0

당신의 문제는 인코딩이 아닌 파일 액세스와 관련이 있습니다. FileStream (name, FileMode.Open, FileAccess.Read)을 올바른 플래그로 스트림하여 파일을 열려고 시도한 다음 Stream을 사용하는 다른 생성자 인 StreamReader를 호출하는 것이 좋습니다. .

(끝나면 스트림/리더를 처분해야 함)

관련 문제