目次

ファイルパスから、ファイルのあるディレクトリのパスを取得する - C#

ファイルパスからファイルが配置されているディレクトリのパスを取得するコードを紹介します。

概要

ファイルパスからファイルが配置されているディレクトリのパスを取得する場合は、Pathクラスの GetDirectoryName() メソッドを利用します。

書式

Path.GetDirecoryName([パスの文字列])
または
System.IO.Path.GetDirecoryName([パスの文字列])

プログラム

UI

下図のUIを作成します。ボタンを2つ、テキストボックスを2つ、OpenFileDialog1つを配置します。

コード

下記のコードを記述します。
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;
using System.IO;

namespace PathStringProcessing
{
  public partial class FormFilePath : Form
  {
    public FormFilePath()
    {
      InitializeComponent();
    }

    private void button_Reference_Click(object sender, EventArgs e)
    {
      if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
        textBox_Path.Text = openFileDialog1.FileName;
      }
      
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string PathString = textBox_Path.Text;

      string dirName = Path.GetDirectoryName(PathString);
      textBox_Output.Text += dirName + "\r\n";
    }
  }
}
解説
ファイルパスからディレクトリのパスを取得するにはPathクラスのGetDirectoryName() メソッドを用います。引数にはファイルのパスを与えます。戻り値はファイルのあるディレクトリのパスになります。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


参照ボタンをクリック、または直接テキストボックスにファイルパスを入力します。


[Dirパス取得]ボタンをクリックします。ファイルが存在すディレクトリのパスを下部のテキストボックスに表示します。


相対パスの場合は、相対パスでのディレクトリ位置を返します。

注意

パスがファイルではなくディレクトリの場合は一つ上のディレクトリのパスが結果として返されます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2014-07-28
改訂日: 2021-07-20
iPentec all rights reserverd.