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

VB.NETでファイルの存在確認をする方法を完全ガイド!初心者でもわかるFile.Exists

VB.NETでファイルの存在確認をする方法(File.Exists)
VB.NETでファイルの存在確認をする方法(File.Exists)

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

生徒

「プログラムでファイルを開こうとしたら、ファイルがなくてエラーになってしまいました。どうすればいいですか?」

先生

「それは困りましたね。VB.NETでは、ファイルがあるかどうかを事前に確認するFile.Existsという便利な機能がありますよ。」

生徒

「ファイルがあるかどうかを、プログラムが自分で調べてくれるんですか?」

先生

「その通りです。これを使えば、エラーを未然に防いで安全なプログラムを作ることができます。具体的な使い方を見ていきましょう!」

1. ファイルの存在確認が必要な理由とは?

1. ファイルの存在確認が必要な理由とは?
1. ファイルの存在確認が必要な理由とは?

パソコンを使っていて、あるはずの書類が見つからないという経験はありませんか。プログラムも同じで、指定された場所にファイルが存在しないのに読み込もうとすると、処理が止まって強制終了してしまいます。これをプログラミング用語で例外(れいがい)ランタイムエラーと呼びます。未経験の方にとって、エラーで画面が真っ赤になるのは怖いものですが、事前に「ファイルはありますか」と確認する仕組みを入れれば安心です。

VB.NETのFile.Existsは、ファイルが存在すれば「はい(True)」、なければ「いいえ(False)」という結果を返してくれます。この結果を条件分岐に使うことで、ファイルがある時だけ読み込み、ない時は「ファイルが見つかりません」とメッセージを出すといった親切なプログラムが作れるようになります。これが、堅牢(けんろう)なプログラムを作るための第一歩です。

2. File.Existsの基本的な書き方

2. File.Existsの基本的な書き方
2. File.Existsの基本的な書き方

まずは一番シンプルなプログラムを見てみましょう。ここでは、特定の場所に「test.txt」という名前のファイルがあるかどうかを判定します。ファイル操作を行うためには、プログラムの先頭にImports System.IOという一文を書く必要があります。これは「ファイルの入出力を担当する道具箱を使います」という宣言のようなものです。パソコンを触ったことがない方でも、このおまじないを書くことで、便利なファイル操作機能が使えるようになると覚えておいてください。


Imports System.IO

Module Module1
    Sub Main()
        ' 調べたいファイルの場所を指定します
        Dim filePath As String = "C:\temp\test.txt"

        ' ファイルが存在するか確認します
        If File.Exists(filePath) Then
            ' ファイルがあった時の処理
            Console.WriteLine("ファイルが見つかりました!")
        Else
            ' ファイルがなかった時の処理
            Console.WriteLine("ファイルが存在しません。")
        End If
    End Sub
End Module

3. 専門用語とファイルのパス(住所)の解説

3. 専門用語とファイルのパス(住所)の解説
3. 専門用語とファイルのパス(住所)の解説

ここで、初心者の方がつまずきやすい言葉について解説します。プログラムを理解するためのヒントにしてください。

  • パス (Path): パソコンの中でのファイルの「住所」のことです。例えば「Cドライブの中のtempフォルダーの中にあるファイル」を指します。
  • 文字列 (String): プログラミングで扱う「文字」のことです。ダブルクォーテーション「" "」で囲んで表現します。
  • Boolean (ブーリアン): 「真 (True)」か「偽 (False)」の二択しかないデータ型です。File.Existsの戻り値はこの型になります。

例えるなら、File.Existsは「お使い」を頼まれた子供が、お店の前に着いて「お店は開いているかな?」と確認する動作に似ています。お店(ファイル)がなければ、中に入って買い物(データの読み込み)はできませんよね。無理に入ろうとすると警察(システム)に止められてしまいます。だから、まず確認が必要なのです。

4. ユーザーが入力したファイル名を確認する応用例

4. ユーザーが入力したファイル名を確認する応用例
4. ユーザーが入力したファイル名を確認する応用例

次に、あらかじめ決まったファイルではなく、使う人が入力したファイル名が存在するかどうかを確認する例を見てみましょう。実際のアプリでは、ユーザーがどんな名前を入力するか分かりません。打ち間違いなどで存在しない名前を入力した時に、優しく指摘してあげる機能を作ってみましょう。ここでは、繰り返し処理を使って、正しいファイル名が入力されるまで聞き直すプログラムを紹介します。


Imports System.IO

Module Module2
    Sub Main()
        Dim inputFileName As String
        
        Do
            Console.WriteLine("確認したいファイル名を入力してください(例: data.txt):")
            inputFileName = Console.ReadLine()

            ' 入力されたファイルがあるか判定
            If File.Exists(inputFileName) Then
                Console.WriteLine(inputFileName & " は確認できました。処理を開始します。")
                Exit Do ' ループを抜けます
            Else
                Console.WriteLine("エラー:そのファイルは見つかりません。もう一度入力してください。")
            End If
        Loop
    End Sub
End Module

5. ファイルの存在確認とフォルダーの確認の違い

5. ファイルの存在確認とフォルダーの確認の違い
5. ファイルの存在確認とフォルダーの確認の違い

よくある勘違いとして、「ファイルがあるか確認できるなら、フォルダー(ディレクトリ)があるかも確認できるはずだ」というものがあります。しかし、VB.NETでは、ファイルを確認する道具と、フォルダーを確認する道具は別々に用意されています。ファイルはFile.Existsを使いますが、フォルダーの場合はDirectory.Existsを使います。

なぜ分かれているのでしょうか。それは、パソコンにとって「中身がデータであるファイル」と「他のファイルをまとめる箱であるフォルダー」は、役割が全く異なるからです。もしフォルダーの場所に対してFile.Existsを使うと、どんなにそのフォルダーが実在していても「いいえ(False)」と返ってきます。ここが混乱しやすいポイントですので、しっかりと区別して覚えましょう。用途に合わせた道具選びが、ミスを減らすコツです。

6. ファイルが存在する時だけ削除する安全な方法

6. ファイルが存在する時だけ削除する安全な方法
6. ファイルが存在する時だけ削除する安全な方法

ファイルの存在確認は、読み込む時だけでなく、削除する時にも非常に役立ちます。存在しないファイルを無理やり消そうとすると、やはりエラーが発生してしまいます。プログラムで古いデータを整理したり、一時的なファイルを削除したりする場合は、必ず存在を確認してから削除の命令を出すのがマナーです。以下のコードは、安全にファイルを削除する手順を示しています。


Imports System.IO

Module Module3
    Sub Main()
        Dim targetFile As String = "C:\temp\old_data.log"

        ' 消す前に必ずチェック!
        If File.Exists(targetFile) Then
            ' 存在する場合のみ削除を実行
            File.Delete(targetFile)
            Console.WriteLine("古いファイルを削除して整理しました。")
        Else
            ' 存在しない場合は何もしない、またはメッセージを出す
            Console.WriteLine("削除対象のファイルがないため、スキップしました。")
        End If
    End Sub
End Module

7. 注意点:ファイル名の大文字・小文字とアクセス権

7. 注意点:ファイル名の大文字・小文字とアクセス権
7. 注意点:ファイル名の大文字・小文字とアクセス権

最後に、少しだけ高度な注意点をお伝えします。Windowsというシステムでは、ファイル名の大文字と小文字(例えば「A.txt」と「a.txt」)を区別しないことが多いですが、将来的に他のシステムで動かすプログラムを作る場合は意識が必要です。また、ファイルが確かに存在していても、そのファイルを開くための権限(パーミッション)がない場合、プログラムがファイルを扱えないことがあります。

初心者の方は、まず「パスが正しいか」「ファイル名は合っているか」を確認することから始めてください。もしFile.Existsが思い通りの結果を返さない時は、指定した住所が間違っていないか、エクスプローラーなどで実際の場所を再確認してみましょう。一歩ずつ確認しながら進めることで、プログラムの動きがだんだん手に取るように分かってくるはずです。ファイル操作の基本をマスターして、便利なツールを作ってみてくださいね。


Imports System.IO

Module Module4
    Sub Main()
        ' 相対パス(プログラムの場所基準)での確認例
        Dim localFile As String = "settings.config"

        If File.Exists(localFile) Then
            Console.WriteLine("現在のフォルダーに設定ファイルがあります。")
        Else
            Console.WriteLine("設定ファイルが見つかりません。デフォルト値を使います。")
        End If
    End Sub
End Module
関連記事:
カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NETのWeb.configデプロイ時の注意点を完全ガイド!初心者でもわかる設定ミス対策
New2
VB.NET
VB.NETでファイル一覧を取得する方法を完全ガイド!初心者でもわかるDirectory.GetFiles
New3
ASP.NET
ASP.NETを安定稼働させるためのIISアプリケーションプール設定完全ガイド【初心者向け】
New4
VB.NET
VB.NETでディレクトリを作成・削除する方法を完全ガイド!初心者でもわかるDirectoryクラス
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.2
Java&Spring記事人気No2
VB.NET
VB.NETの入出力の基本!初心者でもわかるConsole.WriteLine()とConsole.ReadLine()の使い方
No.3
Java&Spring記事人気No3
VB.NET
VB.NETでファイルのコピー・移動・削除を完全ガイド!初心者でもわかるファイル操作
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.5
Java&Spring記事人気No5
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介
No.6
Java&Spring記事人気No6
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでファイル情報を取得する完全ガイド!初心者でもわかるFileInfoの使い方