.NET TIPS Windowsフォルダのパスやドライブ名を取得するには?デジタルアドバンテージ2004/07/30 |
|
|
「TIPS:Windowsのシステム・フォルダのパスを取得するには?」では、Windowsシステムの特別なフォルダ(SpecialFolder)を取得する方法が紹介されている。
しかし、この特殊フォルダの中に、Windowsフォルダ(通常は「C:\Windows」)やシステム・ドライブ(通常は「C:」)は含まれていない(特殊フォルダとして取得できる値について詳しくはMSDN「Environment.SpecialFolder 列挙体」を参照されたい)。
このため、もしWindowsフォルダやシステム・ドライブを取得したい場合には別の手段が必要となる。本稿ではその手段の1つとして、環境変数からWindowsフォルダのパス(環境変数名は「windir」もしくは「SystemRoot」)やドライブ名(環境変数名は「SystemDrive」)を取得する方法を紹介する。
環境変数からWindowsフォルダのパスやドライブ名を取得する方法
.NET Frameworkで環境変数の値を取得するには、Environmentクラス(System名前空間)のGetEnvironmentVariableメソッドを使えばよい。メソッドの使用方法としては、メソッドの第1パラメータに環境変数名(文字列)を指定して呼び出すと、戻り値としてパスやドライブ名などを文字列として取得できる。
次のサンプル・プログラムは、GetEnvironmentVariableメソッドを使って環境変数からWindowsフォルダやシステム・ドライブを取得するコードである。
|
|
環境変数からWindowsフォルダやシステム・ドライブを取得するサンプル・プログラム(C#) |
|
|
環境変数からWindowsフォルダやシステム・ドライブを取得するサンプル・プログラム(VB.NET) |
上記のサンプル・プログラムを参照すると分かるように、環境変数からWindowsフォルダやシステム・ドライブを取得する場合、WindowsのOSバージョンごとに環境変数の定義が異なる場合があることに注意しなければならない。
例えば、「SystemDrive」や「SystemRoot」という環境変数は、NT系OSでは標準サポートされているが、9x系OSではサポートされていない。よって9x系OSでは、「SystemRoot」の代わりに「windir」という環境変数を使わねばならず、「SystemDrive」に至ってはそれに代わる環境変数すらないので注意してほしい(環境変数については、「Windos TIPS:OSの種類によってバッチ・ファイルの処理を切り替える方法」に添付されている「表」を参考にするとよい)。
このようなOS間の差異の問題を回避するため、Windowsフォルダのパスは、現時点では「windir」を使う方がよいだろう。というのも、「windir」は下位互換性のために、NT系OSでも引き続きサポートされているからだ。また、システム・ドライブ名は、「windir」で取得したWindowsフォルダのパスから抽出するとよいだろう。
カテゴリ:クラス・ライブラリ 処理対象:Windows環境 使用ライブラリ:Environmentクラス(System名前空間) 関連TIPS:Windowsのシステム・フォルダのパスを取得するには? 関連TIPS(Windows):OSの種類によってバッチ・ファイルの処理を切り替える方法 |
|
「.NET TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- .NET TIPS - .NET開発のテクニックとヒント集 - (2009/8/27)
− DataPagerでListViewにページャを追加するには?
− Silverlightコントロールの実サイズを取得するには?
− Visual Studioで行を素早くコピー&ペーストするには? - 超簡単「Small Basic」でプログラミングを始めよう! (2009/8/25)
マイクロソフトが作成中の、プログラミング初心者に優しい新言語「Small Basic」とは、どのようなものか? その開発を体験してみよう - .NET TIPS - .NET開発のテクニックとヒント集 - (2009/8/20)
− Silverlightアプリをフルスクリーンで表示するには?
− ListViewで表示項目をグルーピングするには?
− Windows 7の新機能をC#やVBで利用するには? - 論理階層とコンポーネントに分解したアーキテクチャ (2009/8/18)
プレゼンテーション層、サービス層、ビジネス層、データ・アクセス層とは? 各層に含まれるコンポーネントの役割を説明
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
お勧め求人情報
**先週の人気講座ランキング**
〜UNIX/Linux〜
◆ | テストツールを導入しても結果が伴わない なぜ? JaSSTメンバがその真相に迫る! New! |
◆ | UTMだからといってあきらめていませんか 境界防御はフルスペックのFW+IPSで臨め New! |
◆ | その日のうちに効果を実感できる WAN最適化アプライアンスのススメ New! |
◆ | クラウドとデータセンターの融合の中で、 失敗しないために必要な10の要件とは? |
◆ | これで分かる!「ログを使いこなす方法」 立ち見が出るほどの会場で語られたことは |
◆ | もう「ITリソースの過不足」に悩まない! “隣のサーバ”のメモリとCPUを活用せよ |
◆ | 経営コンサルの国家資格、中小企業診断士 ITエンジニアが注目するその理由とは? |
◆ | Javaの宿命、「Full GC」によるシステム 停止はどのようにしたら防げるだろうか? |
◆ | サービス開始の時のために覚えておきたい さくらインターネットの“価格破壊” |
◆ | これが最新のプロジェクト管理手法だ! 工事進行基準やコスト圧力に打ち勝つ方法 |