質問: よく Windows のソフトでは、ユーザフォルダの AppData 以下に個人用の設定ファイルを保存していると思います。 同じようにそこに設定等のデータを保存するようにしようかと考えたのですが、ここは**自分で直接パス指定**して読み書きするものなのでしょうか? `%APPDATA%\myapp\setting` や `%LOCALAPPDATA%\myapp\setting` といった感じです。 App.config のように取得する方法があるのかと調べていると、Windows8アプリようですが、このような記事を見つけました。 > > この「AppData」内のフォルダを利用する場合、「勝手にフォルダを作って保存してはいけない」という点を理解しておきましょう。各フォルダの中に自動的にアプリケーションの領域が作成され、その中に必要なファイルが保存される仕組みになっています。その保管場所はシステムによって決定されるのです。 > > > 従って、勝手にファイルのパスなどを指定してファイルを書きだそうとしてはいけません。用意されている専用クラスを使ってフォルダを指定する必要があります。 > > > Windows8 アプリ以外の WPF や WindowsForms、コンソールアプリにもこういうものはあるのでしょうか?
回答: ウィンドウズストアアプリの場合は、アプリが保存できるフォルダというのが少々特殊な扱いになっていたと記憶しているので、サイトの指摘にあるようなAPIを介して使った方がいいということだと思います。 通常のデスクトップアプリ(WPF、コンソール、Forms)ならば、直指定でも権限が許すならどこでも問題ないと思います。 ただ、環境変数は名前が変わる可能性もあるので、Environment.GetFolderPath( https://msdn.microsoft.com/ja-jp/library/14tx8hby(v=vs.110).aspx )の方を使用した方がいいかもしれません。