C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果

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

概要

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

書式

Path.GetDirecoryName([パスの文字列])

または

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

プログラム

UI

下図のUIを作成します。ボタンを2つ、テキストボックスを2つ、OpenFileDialog1つを配置します。
C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果:画像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;
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() メソッドを用います。引数にはファイルのパスを与えます。戻り値はファイルのあるディレクトリのパスになります。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果:画像2

参照ボタンをクリック、または直接テキストボックスにファイルパスを入力します。
C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果:画像3

[Dirパス取得]ボタンをクリックします。ファイルが存在すディレクトリのパスを下部のテキストボックスに表示します。
C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果:画像4

相対パスの場合は、相対パスでのディレクトリ位置を返します。
C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果:画像5

注意
パスがファイルではなくディレクトリの場合は一つ上のディレクトリのパスが結果として返されます。
C#でファイルパスから、ファイルのあるディレクトリのパスを取得するコードと実行結果:画像6
AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2014-07-28
改訂日: 2021-07-20
Copyright © 1995–2025 iPentec all rights reserverd.