2010-05-12 7 views
1

Я использую StreamReader в C# .net для чтения RTF-файлов. Он работал, но через некоторое время он не работает. Может кто-нибудь мне помочь?Проблема с потоковым считывателем

Мой код:

StreamReader reader = new StreamReader(AppDomain.CurrentDomain.BaseDirectory 
             + @"\Features.rtf"); 
string strfeatures = reader.ReadToEnd(); 

Теперь я получаю следующее содержание в strfeatures т.е.

{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fswiss\fcharset0 Arial;}} 
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20\par 
} 

Я не знаю, почему? Может ли кто-нибудь мне помочь?

+0

какие ошибки вы получаете? –

+1

Ваш читатель должен находиться внутри используемого блока, чтобы убедиться, что он закрыт и удален после использования - когда вы говорите, что он перестает работать, что такое ошибка? – Paddy

+1

Если ваш код не изменился ... и он выглядит хорошо для меня, вам нужно посмотреть на данные, которые он получает, проверить путь, данные сами, прочитать трассировку стека. Еще лучше опубликуйте ошибку и трассировку стека. – Yoda

ответ

3

Ваш StreamReader и результат верны. Если вы ожидали другого результата, вы либо загружаете неправильный файл, либо содержимое файла отличается от того, что вы ожидаете.

BTW: Правильный способ создания пути - использовать метод Path.Combine, а не использовать + конкатенатор.

AppDomain.CurrentDomain.BaseDirectory выглядит несколько подозрительно. Вы уверены, что не ищете что-то вроде Environment.CurrentDirectory?

+0

плюс для рекомендации Path.Combine вместо + – Beatles1692

+0

Я могу читать текстовые файлы с помощью кода, который я дал, но не смог прочитать rtf-файлы. – user285008

+0

Мне нужно содержание в общем текстовом формате – user285008