none
OSがMe/XPかまたはVista/7かのより簡単な判定法はありますか? RRS feed

回答

  • >実行時にOSが何かを特定しVistaや7の場合は接続先を以下のように変更しなければいけないことになりますね

    いいえ。そんな必要はありません。

    Environment.GetFolderPath() によって、OS の種別や設定を反映した、適切な「ドキュメント」フォルダのパスを得ることができます。

     

    • 回答としてマーク zen73 2010年7月27日 21:25
    2010年7月27日 12:04
    モデレータ

すべての返信

  • >実行時にOSが何かを特定しVistaや7の場合は接続先を以下のように変更しなければいけないことになりますね

    いいえ。そんな必要はありません。

    Environment.GetFolderPath() によって、OS の種別や設定を反映した、適切な「ドキュメント」フォルダのパスを得ることができます。

     

    • 回答としてマーク zen73 2010年7月27日 21:25
    2010年7月27日 12:04
    モデレータ
  • >いいえ。そんな必要はありません。

    渋木宏明さん,ありがとうございます。数々の質問にお答えいただき,お陰さまでようやく疑問がすべて解消した気がします。

    private void Form1_Load(object sender, EventArgs e)
            {
                //ドキュメントフォルダの場所を取得
                string path1 = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
               
                //データファイルの親ディレクトリ
                string path2 = Application.StartupPath;

                //フォルダ(Zen73soft)の有無を確認し無いときは作る
                string fName = "\\Zen73soft\\出納簿5";
                if (!System.IO.Directory.Exists(path1 + fName))
                {
                    System.IO.Directory.CreateDirectory(path1 + fName);
                }

                //データファイルが無ければコピーする
                string sName = "\\suito.mdb";
                if(System.IO.File.Exists(path1 +fName + sName)==false)
                {
                    System.IO.File.Copy(path2 + sName, path1+fName + sName,true);
                }
            }


    zen73
    2010年7月27日 21:25
  • >path1 + fName
    >path1 +fName + sName

    Path.Combine() を使った方がいいと思います。

     

     

    2010年7月28日 1:52
    モデレータ
  • path.Conbine()のほうがより安全と書かれていることを確認しました。

    渋木宏明さん,ありがとうございました。


    zen73
    2010年7月29日 9:08