Development‎ > ‎Windows関連‎ > ‎C#関連‎ > ‎

システム制御 - 設定ファイルにアクセスする

概要

アプリケーションの設定ファイルにアクセスする方法を掲載致します。
ここでは、アプリケーションにデフォルトで用意される設定ファイルに関して記載しております。


対象

C#

方法

読込方法

コード
Properties.Settings.Default.Reload();
string data = (string)Properties.Settings.Default["キー名"]

1行目の処理は1度だけ実行します。(同一アプリケーション内)
2行目で、「キー名」というキーの値を文字列として取得しています。
用意している型に合わせて取得してください。
キャストしないと、ワーニングが出力されます。
更新方法
コード
Properties.Settings.Default["キー名"] = "123";
Properties.Settings.Default.Save();

上記では「キー名」というキーに対して、文字列「123」を設定しています。
注意すべきは、値を設定しただけでは設定ファイルに反映されないという点です。
そのため、反映させるには、上記コード2行目の処理が必要となります。
通知イベント
イベント名説明
PropertyChangedアプリケーション設定プロパティの値が変更された後に発生します。
SettingChangingアプリケーション設定プロパティの値が変更される前に発生します。
SettingsLoadedアプリケーション設定をストレージから取得した後に発生します。
SettingsSavingデータ ストアに値が保存される前に発生します。

使用例
//フォームのLoadイベントハンドラ
private void Form1_Load(object sender, EventArgs e)
{
    Properties.Settings.Default.SettingChanging +=
        new System.Configuration.SettingChangingEventHandler(SettingChanging);
}

private void SettingChanging( object sender, System.Configuration.SettingChangingEventArgs e)
{
    //変更しようとしている設定が"Text"のとき
    if (e.SettingName == "Text")
    {
        //設定しようとしている値を取得
        string str = e.NewValue.ToString();
        if (str.Length < 2)
        {
            //変更をキャンセルする
            e.Cancel = true;
        }
    }
}
上記「System.Configuration.SettingChangingEventArgs」の「Cancel」に「true」を設定すると、変更がキャンセルされます。
例:e.Cancel = true;
「System.Configuration.SettingChangingEventArgs」の「NewValue」には変更使用としているオブジェクト・データが入っています。

任意設定ファイル(ファイ名指定)のサクセスも可能ですが、これに関してはマニュアルを参照ください。

注意

データ取得時にキーが存在しない場合には「SettingsPropertyNotFoundException」例外が発生します。
実際にコーディングする場合には、例外処理を忘れずに行ってください。
SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser