2010年08月26日
川俣晶の縁側ソフトウェア技術雑記total 3193 count

CommonProgramFilesX86の研究

Written By: 川俣 晶連絡先

 Environment.SpecialFolder.CommonProgramFilesとEnvironment.SpecialFolder.CommonProgramFilesX86の違いがドキュメントだけでは良く分からなかったので、軽くスパイク。

使用ソース (C# 4.0) §

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication30

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("CommonProgramFiles={0}", System.Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles));

            Console.WriteLine("CommonProgramFilesX86={0}", System.Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86));

        }

    }

}

実行結果: Win7 x86 WOW64 §

  • CommonProgramFiles=C:\Program Files (x86)\Common Files
  • CommonProgramFilesX86=C:\Program Files (x86)\Common Files

実行結果: Win7 x64 native §

  • CommonProgramFiles=C:\Program Files\Common Files
  • CommonProgramFilesX86=C:\Program Files (x86)\Common Files

実行結果: Windows XP x86(仮想マシン) §

  • CommonProgramFiles=C:\Program Files\Common Files
  • CommonProgramFilesX86=

まとめ §

 CommonProgramFilesX86は結果が得られないことがあり、参照は望ましくない。結果が得られる環境と判定される場合のみに限定して使用すべき。

 では、CommonProgramFilesを使えばいいのかといえば、x64 nativeでは(x86)のフォルダを参照してくれない。x86用だけ提供してお茶を濁したいときには向かない。

 結局、常にx86側を指し示すには以下のようなルールが良いのだろうか。

  • CommonProgramFilesX86の取得を試みる
  • 中身がある場合はそれを採用
  • 中身がない場合はCommonProgramFilesを取得して結果とする

 御意見があればどうぞ。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20100826150907
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.34 (Alpha-Test) Copyright (c) 2004-2018 Pie Dey.Co.,Ltd.