libro
www.tuyano.com
初心者のためのC#プログラミング入門

ファイルを利用する (3/5)

作成:2013-09-14 10:43
更新:2013-09-14 10:43

■Environment.SpecialFolderによるフォルダパス

ここまでのサンプルでは、ファイルはすべてファイル名を指定するだけでした。「EXEファイルと同じ場所に、この名前のファイルを用意する」という形ですね。

しかし、普通、ファイルを利用するという場合は、例えば「マイドキュメント」フォルダの中など、ファイルを保管しているところにあるものを指定して読み込ませたりするのが一般的です。こうした「他の場所にあるファイル」を扱うにはどうするのでしょう。

C#の場合、ファイルやフォルダの扱いは、原則として「そのファイルやフォルダのパスを示すテキスト」を利用します。パスさえ用意できれば、それを元に必要な操作が行えるようになっているのです。では、ファイルのパスはどうやって取り出せばいいのか。これは、「主な場所(フォルダ)のファイルパスを取り出す」「フォルダの中や外側のフォルダやファイルのパスを取り出す」といったやり方を覚え、それを組み合わえて処理するのが基本といえます。

例えば、「マイドキュメント」にあるファイルならば、まず「マイドキュメント」のパスを調べ、その中にあるファイルを取り出し、そこから使いたいものを選ぶ、というような手順で必要なファイルのパスを得ることができます。

では、まずは「重要なフォルダのパス」を得る方法から整理しましょう。Windowsでは、システムが管理している特別なフォルダというのがあります。こうしたフォルダは、Systemパッケージの「Environment」というクラスの「SpecialFolder」というプロパティにまとめられています。この Environment.SpecialFolderに用意されている主なプロパティを以下に整理しましょう。

・Environment.SpecialFolderのフォルダ
ApplicationData――ホームディレクトリ内の「AppData」フォルダ
MyComputer――「マイコンピュータ」
MyDocuments――「マイドキュメント」
MyPictures――「マイピクチャー」
MyVideos――「マイビデオ」
MyMusic――「マイミュージック」
Desktop――デスクトップ
ProgramFiles――「Program Files」フォルダ
Windows――Windowsのインストールフォルダ

これらのプロパティでは、「SpecialFolder」という値としてそれぞれのフォルダが保管されています。これは列挙体の値で、これらの値からそのフォルダのパスを得るのに以下のようなメソッドを用います。
string 変数 =  Environment.GetFolderPath(《SpecialFolder》);
これで、SpecialFolderにある特別なフォルダのパスがひと通り得られるようになります。例えば「マイドキュメント」フォルダのパスを得たければ、
string doc = Environment.GetFolderPath
        (Environment.SpecialFolder.MyDocuments);
こんな具合にすればいいわけです。それ以外のフォルダも、Environment.SpecialFolderに用意されているフォルダは基本的に同じやり方でパスを得られます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る