アプリケーションデータなどの特殊なフォルダのパスを取得する

概要

アプリケーションデータなどの特殊なフォルダのパスを取得するコードを紹介します。
ユーザーのデータフォルダやデスクトップフォルダは、OSの種類やOSの設定により、位置が異なっています。 そのため、ユーザーのデータフォルダやデスクトップフォルダを取得する場合には、Enviroment.GetFolderPath() メソッドで取得します。

使用例

下記が GetFolderPath の呼び出しコード例です。
引数として、取得したい特殊フォルダを指定します。下記コードはローカルアプリケーションデータフォルダのパスを取得する例です。

AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)


どのようなパスが取得できるか確認してみます。フォームにtextBoxをひとつ、Buttonをひとつ配置します。 textBoxのMultilineプロパティをTrueに、ScroolBarsプロパティを Verticalに設定します。 次に、ButtonのClickイベントに下記のコードを記述します。

 private void button1_Click(object sender, EventArgs e)
    {
      string AppDataPath = "";
      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
      textBox1.Text += "ApplicationData : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
      textBox1.Text += "CommonApplicationData : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles);
      textBox1.Text += "CommonProgramFiles : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Cookies);
      textBox1.Text += "Cookies : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
      textBox1.Text += "Desktop : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
      textBox1.Text += "DesktopDirectory : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
      textBox1.Text += "Favorites : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.History);
      textBox1.Text += "History : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
      textBox1.Text += "InternetCache : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
      textBox1.Text += "LocalApplicationData : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
      textBox1.Text += "MyComputer : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
      textBox1.Text += "MyDocuments : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
      textBox1.Text += "MyMusic : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
      textBox1.Text += "MyPictures : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
      textBox1.Text += "Personal : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
      textBox1.Text += "ProgramFiles : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Programs);
      textBox1.Text += "Programs : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Recent);
      textBox1.Text += "Recent : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.SendTo);
      textBox1.Text += "SendTo : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu);
      textBox1.Text += "StartMenu : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
      textBox1.Text += "Startup : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
      textBox1.Text += "System : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Templates);
      textBox1.Text += "Templates : " + AppDataPath + "\r\n";

    }

サンプルプログラム

UI

下図のUIを作成します。
アプリケーションデータなどの特殊なフォルダのパスを取得する:画像1

コード

下記のコードを記述します。

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 GetSystemFolder
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string AppDataPath = "";
      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
      textBox1.Text += "ApplicationData : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
      textBox1.Text += "CommonApplicationData : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles);
      textBox1.Text += "CommonProgramFiles : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Cookies);
      textBox1.Text += "Cookies : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
      textBox1.Text += "Desktop : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
      textBox1.Text += "DesktopDirectory : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
      textBox1.Text += "Favorites : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.History);
      textBox1.Text += "History : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
      textBox1.Text += "InternetCache : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
      textBox1.Text += "LocalApplicationData : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
      textBox1.Text += "MyComputer : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
      textBox1.Text += "MyDocuments : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
      textBox1.Text += "MyMusic : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
      textBox1.Text += "MyPictures : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
      textBox1.Text += "Personal : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
      textBox1.Text += "ProgramFiles : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Programs);
      textBox1.Text += "Programs : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Recent);
      textBox1.Text += "Recent : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.SendTo);
      textBox1.Text += "SendTo : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu);
      textBox1.Text += "StartMenu : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
      textBox1.Text += "Startup : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
      textBox1.Text += "System : " + AppDataPath + "\r\n";

      AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.Templates);
      textBox1.Text += "Templates : " + AppDataPath + "\r\n";

    }
  }
}

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
アプリケーションデータなどの特殊なフォルダのパスを取得する:画像2

[button1]をクリックします。特殊フォルダのパスが取得できることがわかります。
アプリケーションデータなどの特殊なフォルダのパスを取得する:画像3

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2009-02-12
Copyright © 1995–2025 iPentec all rights reserverd.