カレントディレクトリ (作業ディレクトリ) を取得する

カレントディレクトリ (作業ディレクトリ) を取得するコードを紹介します。

概要

C#のプログラム内でカレントディレクトリを取得する場合は、Directoryクラスの GetCurrentDirectory() メソッドを呼び出して取得します。

プログラム例

UI

下図のフォームを作成します。フォームにボタンとテキストボックスを配置します。
カレントディレクトリ (作業ディレクトリ) を取得する:画像1

コード

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

namespace GetCurrentDirectory
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string CurrentDir = Directory.GetCurrentDirectory();
      textBox1.Text = CurrentDir;
    }
  }
}

解説

DirecrotyクラスのGetCurrentDirectoryメソッドを呼び出し、カレントディレクトリを取得します。 カレントディレクトリは、string型で、GetCurrentDirectoryメソッドの戻り値として取得できます。

  string CurrentDir = Directory.GetCurrentDirectory();


取得したカレントディレクトリのパスの文字列をテキストボックスに表示します。

  textBox1.Text = CurrentDir;

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
カレントディレクトリ (作業ディレクトリ) を取得する:画像2

[button1]をクリックします。カレントディレクトリのパスの文字列がテキストボックスに表示されます。 今回のプログラムでは、実行ファイルのあるディレクトリがカレントディレクトリとなっています。
カレントディレクトリ (作業ディレクトリ) を取得する:画像3

補足: カレントディレクトリとアプリケーション配置ディレクトリが異なる場合

多くの場合では、カレントディレクトリとアプリケーション配置ディレクトリは同じパスになりますが、 異なるパスになる場合もあります。

Windows アプリケー所を作成し、以下のテストプログラムを作成します。

UI

下図のフォームを作成します。ボタンとテキストボックスを2つ配置します。
カレントディレクトリ (作業ディレクトリ) を取得する:画像4

コード

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

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GetPath
{
  public partial class FormGetApplicationDirectoryPlus : Form
  {
    public FormGetApplicationDirectoryPlus()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string CurrentDir = Directory.GetCurrentDirectory();
      textBox1.Text = CurrentDir;

      string ExeDirPath = Path.GetDirectoryName(Application.ExecutablePath);
      textBox2.Text = ExeDirPath;

    }
  }
}

解説

Directory.GetCurrentDirectory(); メソッドにより、カレントディレクトリのパスを取得し上部のテキストボックスに表示します。
下部のテキストボックスには、アプリケーション実行ファイルのディレクトリのパス Path.GetDirectoryName(Application.ExecutablePath); を取得し下部のテキストボックスに表示します。 アプリケーション実行ディレクトリの取得についてはこちらの記事を参照してください。

実行結果

下図のウィンドウが表示されます。
カレントディレクトリ (作業ディレクトリ) を取得する:画像5

[button1]をクリックします。2つのテキストボックスにパスが表示されますが、どちらも同じパスになります。
カレントディレクトリ (作業ディレクトリ) を取得する:画像6

カレントディレクトリとアプリケーション実行ディレクトリのパスが異なる例として、コマンドラインでアプリケーションを起動した場合があります。 コマンドラインから絶対パスで実行ファイルを起動した場合、カレントディレクトリはコマンドラインのカレントディレクトリのパスとなります。
カレントディレクトリ (作業ディレクトリ) を取得する:画像7
カレントディレクトリ (作業ディレクトリ) を取得する:画像8

また、ショートカットでアプリケーションを起動する場合で、ショートカットの [作業フォルダー]の設定がアプリケーション実行ディレクトリとは異なるパスが設定されている場合にも、 カレントディレクトリとアプリケーション実行ディレクトリのパスが異なる状況になります。

カレントディレクトリ (作業ディレクトリ) を取得する:画像9
カレントディレクトリ (作業ディレクトリ) を取得する:画像10

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2024-09-30