カテゴリ: VB.NET 更新日: 2026/03/23

VB.NETでファイルパスを操作!Path.CombineとGetExtensionの使い方を徹底解説

VB.NETでファイルのパスを操作する方法(Path.Combine, GetExtension)
VB.NETでファイルのパスを操作する方法(Path.Combine, GetExtension)

先生と生徒の会話形式で理解しよう

生徒

「VB.NETで、保存したファイルの名前や場所をプログラムで扱いたいのですが、どうすればいいですか?」

先生

「ファイル操作はプログラミングの基本ですね。VB.NETには、パスを安全につなげたり、拡張子だけを取り出したりする便利な機能があるんですよ。」

生徒

「パスって、あのフォルダの場所のことですよね。難しそうですが、私にもできますか?」

先生

「もちろんです!今回は、Path.CombineとGetExtensionという2つの道具を中心に、初心者の方でも迷わないように解説しますね。」

1. ファイルパスとは?初心者向けの基礎知識

1. ファイルパスとは?初心者向けの基礎知識
1. ファイルパスとは?初心者向けの基礎知識

パソコンの中でデータがどこにあるかを示す住所のようなものをパス(Path)と呼びます。例えば、「デスクトップにある、写真フォルダの中の、旅行.jpg」という場所を特定するための文字列のことです。Windowsでは、円マークやバックスラッシュを使って区切りを表現します。

プログラミング未経験の方が最初につまずくのが、この「文字としての住所」の扱い方です。自分で文字を手入力して住所を作ろうとすると、区切り文字を忘れたり、間違えたりしてエラーの原因になります。そこで、VB.NETが用意してくれているSystem.IO.Pathという機能を使うのが正解です。

2. パスを結合する最強の味方「Path.Combine」

2. パスを結合する最強の味方「Path.Combine」
2. パスを結合する最強の味方「Path.Combine」

複数のフォルダ名やファイル名をつなぎ合わせて、一つの住所を作ることをパスの結合と言います。ここで最も活躍するのが Path.Combine メソッドです。これを使う最大のメリットは、フォルダとファイルの間にある区切り文字を自動で適切に処理してくれる点にあります。

もし自分で文字を足し算しようとすると、最後が円マークで終わっているかどうかを気にしなければなりませんが、この機能を使えば、そんな心配は一切不要になります。初心者こそ、この自動化の恩恵を受けるべきです。まずは、最もシンプルな使い方を見てみましょう。


Imports System.IO

Module Module1
    Sub Main()
        Dim folderName As String = "C:\Documents"
        Dim fileName As String = "memo.txt"

        ' パスを結合する
        Dim fullPath As String = Path.Combine(folderName, fileName)

        Console.WriteLine("完成したパス:")
        Console.WriteLine(fullPath)
    End Sub
End Module

完成したパス:
C:\Documents\memo.txt

3. 拡張子を取り出す「GetExtension」の役割

3. 拡張子を取り出す「GetExtension」の役割
3. 拡張子を取り出す「GetExtension」の役割

ファイル名の末尾についている「.txt」や「.jpg」などの部分を拡張子と呼びます。これは、そのファイルが何の種類であるかをパソコンが判断するための印です。プログラムを作っていると、「画像ファイルだけ処理したい」とか「テキストファイルかどうかを確認したい」という場面がよくあります。

Path.GetExtension を使うと、長い住所の中からこの拡張子の部分だけを抜き取ることができます。文字の数を数えたり、点がある場所を探したりする面倒な計算は必要ありません。命令一つでスマートに取得できるため、プログラムがとても読みやすくなります。


Imports System.IO

Module Module1
    Sub Main()
        Dim filePath As String = "C:\Work\SampleData.xlsx"

        ' 拡張子を取得する
        Dim extension As String = Path.GetExtension(filePath)

        Console.WriteLine("このファイルの拡張子は:")
        Console.WriteLine(extension)
    End Sub
End Module

このファイルの拡張子は:
.xlsx

4. なぜ自分流の文字結合をしてはいけないのか

4. なぜ自分流の文字結合をしてはいけないのか
4. なぜ自分流の文字結合をしてはいけないのか

初心者の方は、よく「&」という記号を使って、文字同士をペタペタとくっつけてパスを作ろうとします。しかし、これは非常に危険です。例えば、フォルダ名の最後に区切り文字がある場合とない場合で、結果が変わってしまうからです。プログラムが動かなくなる原因の多くは、こうした小さな文字のミスにあります。

VB.NETの標準機能である Path.Combine は、動作している環境に合わせて最適な区切り文字を判断します。将来的にプログラムを誰か他の人に渡したり、別の種類のパソコンで動かしたりする場合でも、標準機能を使っていれば安心です。安全で確実なコードを書くことが、上達への近道と言えるでしょう。

5. 実践!複数の要素を安全に繋げる方法

5. 実践!複数の要素を安全に繋げる方法
5. 実践!複数の要素を安全に繋げる方法

パスの結合は、2つだけでなく3つ以上の要素を繋げることも可能です。例えば、「ドライブ名」「ユーザー名」「フォルダ名」「ファイル名」といった具合に、階層が深くなっても Path.Combine は順番に指定するだけで正しく処理してくれます。これにより、複雑なフォルダ構成の管理も一気に楽になります。

次の例では、より実用的な「ログファイルの保存先」を作るイメージでプログラムを書いてみます。日付などの情報を含めたフォルダ構成も、これなら一目瞭然で整理できます。コードの書き方がスッキリすることで、後で見返した時にも理解しやすくなります。


Imports System.IO

Module Module1
    Sub Main()
        Dim rootDir As String = "D:\AppRoot"
        Dim userDir As String = "Taro"
        Dim subDir As String = "Logs"
        Dim fileName As String = "20260318.log"

        ' 4つの要素を一度に結合する
        Dim logPath As String = Path.Combine(rootDir, userDir, subDir, fileName)

        Console.WriteLine("ログの保存先はこちら:")
        Console.WriteLine(logPath)
    End Sub
End Module

ログの保存先はこちら:
D:\AppRoot\Taro\Logs\20260318.log

6. ファイルの種類で処理を分ける条件分岐

6. ファイルの種類で処理を分ける条件分岐
6. ファイルの種類で処理を分ける条件分岐

拡張子の取得ができるようになると、特定のファイルだけを特別扱いするプログラムが作れるようになります。例えば、「もし拡張子が .pdf だったら印刷する」「.txt だったら中身を表示する」といった動作です。これは以前学習した If 文と組み合わせることで実現できます。

このように、一つの機能を覚えると、他の機能と組み合わせてできることがどんどん増えていくのがプログラミングの楽しいところです。大文字と小文字を区別しないように注意しながら、判定処理を作ってみる練習をしてみましょう。以下のサンプルでは、簡単なファイル判別機能をシミュレーションしています。


Imports System.IO

Module Module1
    Sub Main()
        Dim targetFile As String = "report.PDF"
        Dim ext As String = Path.GetExtension(targetFile)

        ' 拡張子を小文字に変換して比較すると確実です
        If ext.ToLower() = ".pdf" Then
            Console.WriteLine("これはPDFファイルです。閲覧用アプリを開きます。")
        Else
            Console.WriteLine("PDF以外のファイルです。")
        End If
    End Sub
End Module

これはPDFファイルです。閲覧用アプリを開きます。

7. ファイル名だけを取り出す便利なテクニック

7. ファイル名だけを取り出す便利なテクニック
7. ファイル名だけを取り出す便利なテクニック

パスの操作には他にも便利なものがあります。例えば、フルパス(全部の住所)から、最後の「ファイル名」の部分だけを取り出したいときには Path.GetFileName を使います。逆に、フォルダの場所だけを知りたいときは Path.GetDirectoryName という命令が用意されています。

これらを使いこなすことで、どんなに複雑な住所情報が飛んできても、自由自在に料理できるようになります。初心者の方は、まずは「Path」と入力した後にドットを打ってみて、どのような選択肢が出てくるか眺めてみるだけでも勉強になります。ツールチップに説明が表示されるので、それを読むのも学習の助けになります。

8. エラーを防ぐための注意点とアドバイス

8. エラーを防ぐための注意点とアドバイス
8. エラーを防ぐための注意点とアドバイス

パスを扱うとき、一番注意しなければならないのは「その文字が本当に住所として正しいか」ということです。例えば、ファイル名に使えない文字(星印や疑問符など)が含まれていると、プログラムは途中で止まってしまいます。これを回避するための機能もVB.NETには備わっていますが、まずは「正しい文字を使う」という基本を忘れないでください。

また、プログラムでパスを作ったからといって、その場所に実際にフォルダやファイルが存在するかどうかは別問題です。存在するかどうかを調べる File.Exists などの機能と一緒に使うことで、より壊れにくい、親切なプログラムへと進化させることができます。一つずつ、できることを増やしていきましょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET MVCで学ぶセッションと認証の仕組みをやさしく解説!初心者でも安心して理解できる入門ガイド
New2
VB.NET
VB.NETで名前空間を整理する方法を完全ガイド!初心者でもわかるNamespaceの基本
New3
ASP.NET
ASP.NET CoreのCookie認証を完全ガイド!初心者でもわかるログインの仕組み
New4
VB.NET
VB.NETでStaticクラスを作る方法を完全ガイド!初心者でもわかるクラスとオブジェクト指向入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順
No.2
Java&Spring記事人気No2
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのDateTime型を完全マスター!日付と時間の操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ASP.NET
ASP.NETを安定稼働させるためのIISアプリケーションプール設定完全ガイド【初心者向け】
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの構文ルールまとめ!インデント・改行・予約語など初心者が最初に覚えるべきポイント
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説