C# 開発

C# アプリケーションデータ保存ディレクトリのパスを取得する(DataPathGet)

準備

(なし)

デザイン

  • フォーム (Form1) にボタン (button1) を配置します。
  • フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

Form1.cs

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string vsPath = DataPathGet();
            listBox1.Items.Add(vsPath);
        }

        public static string DataPathGet()
        {
            string vsPath = "";
            vsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            vsPath += $@"\MyComany\{Path.GetFileNameWithoutExtension(Environment.GetCommandLineArgs()[0])}\";

            return vsPath;
        }
    }
}

解説

アプリケーション自身が使用するデータを保存するフォルダを決めている場合、そのフォルダのパスを取得します。本来であれば、C:\ProgramData フォルダが正しいのですが、マルチユーザー環境や PC を他のユーザーに譲り渡した場合には、権限の制限により書き込むことができません。そのため、MyDocuments フォルダを使用しています。

結果

動作確認環境

Visual Studio 2022 Professional (.NET8 C#12)

ログ

初版:2024.03.10 Visual Studio 2022 Professional (.NET8 C#12)

-C# 開発