C#でPropertiesのユーザースコープ設定ファイル保存場所を確認する方法
C#でPropertiesのユーザースコープ設定ファイル保存場所を確認する方法をご紹介します。
目次
条件
- Visual Studio 2017
Properties設定
C#には、アプリケーションの設定を保存する機能が存在します。
詳細は、以下の記事をご確認ください。
ユーザースコープのプロパティ設定ファイル保存場所確認
ユーザースコープのプロパティ設定
まずは、ユーザースコープのプロパティ設定を行います。
適当なプロジェクトを作成し、ソリューションエクスプローラーのPropertiesを右クリック > 開くを選択します。
プロジェクトの設定が開くので、左メニューで「設定」を選択します。
設定の表に、「名前」「種類」「スコープ」「値」を選択/入力します。
この際、スコープは「ユーザー」を選択します。
今回は以下のように3つ設定しました。
プロパティ保存場所確認
プロジェクトソースの任意の箇所に、以下のように記述します。
var appSettings = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal); Console.WriteLine("設定ファイルの保存パス:" + appSettings.FilePath); // 設定ファイルの保存パス
今回は、コンストラクタに記述しました。
しかし、エラーになっています。
参照の追加
エラーを解決するため、参照の追加を行います。
ソリューションエクスプローラーで参照を右クリックし、参照の追加を選択します。
参照マネージャー画面が開くので、アセンブリ > フレームワークを選択し、「System.Configuration」にチェックを入れてOKボタンを押します。
この設定により、ソースからエラー表示が消えます。
実行
プログラムを開始してコンソールの出力を確認します。
エクスプローラーで出力されたパスを開いて確認します。
パスが見つからないというエラーになりました。
未だ何もプロパティ設定保存を行っていないため、対象パスのフォルダそのものが作成されていないようです。
そこで、以下を追記してプロパティ設定の更新&保存を行います。
Properties.Settings.Default.setting1 = "設定1を更新!"; Properties.Settings.Default.setting2 = "設定2を更新!"; Properties.Settings.Default.setting3 = "設定3を更新!"; // アプリケーション設定値を保存する。 Properties.Settings.Default.Save();
改めてプログラムを開始して、エクスプローラーで対象パスを開きます。
今度は、設定ファイルが作成されているようです。
「user.config」を開くと以下のようになっています。
<?xml version="1.0" encoding="utf-8"?> <configuration> <userSettings> <sample1.Properties.Settings> <setting name="setting1" serializeAs="String"> <value>設定1を更新!</value> </setting> <setting name="setting2" serializeAs="String"> <value>設定2を更新!</value> </setting> <setting name="setting3" serializeAs="String"> <value>設定3を更新!</value> </setting> </sample1.Properties.Settings> </userSettings> </configuration>
想定通り、プロパティ設定が保存されていることがわかります。
ソース全体
参考までに、今回のソース全体は以下の通りです。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace sample1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); var appSettings = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal); Console.WriteLine("設定ファイルの保存パス:" + appSettings.FilePath); // 設定ファイルの保存パス Properties.Settings.Default.setting1 = "設定1を更新!"; Properties.Settings.Default.setting2 = "設定2を更新!"; Properties.Settings.Default.setting3 = "設定3を更新!"; // アプリケーション設定値を保存する。 Properties.Settings.Default.Save(); } } }
参考
dobon.net:Visual Studioでアプリケーションの設定を保存する
https://dobon.net/vb/dotnet/programing/mysettings.html
OUTPUT48:【C#】ConfigurationManagerが出ない
https://www.out48.com/archives/2108/