アプリケーションデータなどの特殊なフォルダのパスを取得するコードを紹介します。
ユーザーのデータフォルダやデスクトップフォルダは、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を作成します。
下記のコードを記述します。
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";
}
}
}
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。特殊フォルダのパスが取得できることがわかります。