C#でテキストではないファイルを読み込むには？


C#でワード、エクセル、PDF、メールのmsgファイルといった形式のファイルの内容を読み込みたいのですが、テキストファイル以外はうまくいきません。

[code]

    string file = test.docx;
    
    using (StreamReader sr = new StreamReader(@file, Encoding.GetEncoding("Shift_JIS")))
    
[/code]

テキストファイルに変換して読み込む方法が現実的だと思われるのですが、どうすればよいでしょうか？  
ご教授いただければ幸いです。




> ワード、エクセル、PDF、メールのmsgファイルといった形式のファイル

これらのファイルは一般的に「 **バイナリファイル** 」と呼ばれ、単純なテキストファイルとは区別されます。

テキストファイルはメモ帳などで開けば人間の目で中身(=文字)を直接確認することができますが、バイナリファイルの方は基本的にそれぞれ対応したアプリケーションで開かないと中身はコンピュータしか判読できない形式になっています。

単純に「データとして読み込み・そのままファイルの内容をコピー」程度であれば **FileStreamクラス**
を使えばよさそうですが、文字データだけ抜き出してCSVに変換となるとそれなりの対応が必要になるかと思います。

**参考：**  
[バイナリ・ファイルを読み書きするには？［C#、VB］：.NET TIPS -
＠IT](http://www.atmarkit.co.jp/ait/articles/0711/08/news120.html)




> ワード、エクセル、PDF、メールのmsgファイルといった形式のファイル

これらのファイルは一般的に「 **バイナリファイル** 」と呼ばれ、単純なテキストファイルとは区別されます。

テキストファイルはメモ帳などで開けば人間の目で中身(=文字)を直接確認することができますが、バイナリファイルの方は基本的にそれぞれ対応したアプリケーションで開かないと中身はコンピュータしか判読できない形式になっています。

単純に「データとして読み込み・そのままファイルの内容をコピー」程度であれば **FileStreamクラス**
を使えばよさそうですが、文字データだけ抜き出してCSVに変換となるとそれなりの対応が必要になるかと思います。

**参考：**  
[バイナリ・ファイルを読み書きするには？［C#、VB］：.NET TIPS -
＠IT](http://www.atmarkit.co.jp/ait/articles/0711/08/news120.html)

