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

VB.NETでファイル情報を取得する完全ガイド!初心者でもわかるFileInfoの使い方

VB.NETでファイル情報(サイズ・作成日時)を取得する方法(FileInfo)
VB.NETでファイル情報(サイズ・作成日時)を取得する方法(FileInfo)

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

生徒

「VB.NETで、ファイルがいつ作られたのか、サイズがどれくらいなのかを調べる方法はありますか?」

先生

「ありますよ。VB.NETでは、FileInfoというクラスを使うことで、ファイルのあらゆる情報を簡単に手に入れることができます。」

生徒

「クラス、ですか?なんだか難しそうですが、初心者でも使えますか?」

先生

「大丈夫です。FileInfoは『ファイルのプロフィール帳』のようなものだと考えれば分かりやすいですよ。一緒に使い方を見ていきましょう!」

1. FileInfoとは?ファイル情報のプロフィール帳

1. FileInfoとは?ファイル情報のプロフィール帳
1. FileInfoとは?ファイル情報のプロフィール帳

VB.NETでファイルそのものを操作するのではなく、そのファイルの「属性(データにまつわる情報)」を知りたいときに使うのがFileInfo(ファイルインフォ)クラスです。パソコンを全く触ったことがない方でも、学校の「名簿」をイメージすれば理解しやすいでしょう。名簿には名前だけでなく、誕生日や住所が載っていますよね。それと同じように、FileInfoを使えば、ファイルが作成された日時、最後に更新された日時、データの重さ(サイズ)、そしてファイル名といった情報を一括で取得できます。

これまで学習した「File」クラスとの違いは、FileInfoが「特定のファイルに特化したプロフィールカード」を作成する点にあります。一度カードを作ってしまえば、そこからいつでも情報を引き出せるようになるのです。これから紹介する具体的なプログラムを通して、その便利さを実感してみてください。

2. 基本的なファイル情報の取得方法

2. 基本的なファイル情報の取得方法
2. 基本的なファイル情報の取得方法

まずは、一番よく使う「作成日時」と「ファイルサイズ」を取得してみましょう。プログラムの冒頭には、ファイル操作の道具を揃えるために Imports System.IO を記述します。これは、プログラムの中で「入出力(IO)に関する機能を使います」という合図になります。FileInfoを使う準備ができたら、まずは対象となるファイルのパス(パソコン上の住所)を指定して、FileInfoのインスタンス(実体)を作り出します。


Imports System.IO

Module Module1
    Sub Main()
        ' 調べたいファイルの場所を指定します
        Dim filePath As String = "C:\temp\sample.txt"
        
        ' ファイルが存在する場合のみ処理を行います
        If File.Exists(filePath) Then
            ' FileInfoの「インスタンス」を作成します
            Dim info As New FileInfo(filePath)
            
            ' 作成日時を表示します
            Console.WriteLine("作成日時: " & info.CreationTime)
            ' ファイルのサイズ(バイト単位)を表示します
            Console.WriteLine("サイズ: " & info.Length & " バイト")
        Else
            Console.WriteLine("ファイルが見つかりませんでした。")
        End If
    End Sub
End Module

3. 専門用語と単位のやさしい解説

3. 専門用語と単位のやさしい解説
3. 専門用語と単位のやさしい解説

プログラムの中で出てきた聞き慣れない言葉や概念について、初心者の方にも分かりやすく解説します。ここを理解すると、プログラムが何をしているのかがもっとクリアになりますよ。

  • インスタンス (Instance): プログラミングの世界での「実体」のことです。設計図(クラス)から、実際に触れる形にしたものを指します。今回の場合は「特定のファイル専用のプロフィールカード」を一枚作り出したことになります。
  • バイト (Byte): デジタルの世界での重さ(サイズ)の単位です。1バイトは半角英数字1文字分くらいの重さと覚えておきましょう。
  • Length (レングス): 直訳すると「長さ」ですが、ファイルの場合は「データの量(サイズ)」を指します。

例えば、あなたが図書館で一冊の本を手に取ったとします。その本のタイトル、出版日、ページ数をメモするのがFileInfoの役割です。このとき、本の中身を読み上げるのが「File.ReadAllText」などの別の命令で、本の外側にある情報(表紙のデータ)を扱うのが「FileInfo」だと考えると、役割の違いがはっきりしますね。

4. 更新日時とアクセス日時を詳しく調べる

4. 更新日時とアクセス日時を詳しく調べる
4. 更新日時とアクセス日時を詳しく調べる

ファイルのプロフィールには、作成日以外にも重要な日付があります。それは「いつ最後に中身を書き換えたか(更新日時)」と「いつ最後にファイルを開いたか(アクセス日時)」です。これらを知ることで、例えば「最近使っていない古いファイルを自動で見つけるプログラム」などが作れるようになります。VB.NETでは、これらもFileInfoの機能で簡単に見ることができます。次のプログラムで、それらの情報をまとめて取得してみましょう。


Imports System.IO

Module Module2
    Sub Main()
        Dim path As String = "C:\temp\test_data.log"
        
        ' ファイルのプロフィールを取得
        Dim myFile As New FileInfo(path)
        
        If myFile.Exists Then
            ' 最後に更新された日時
            Dim lastWrite As DateTime = myFile.LastWriteTime
            ' 最後に開かれた日時
            Dim lastAccess As DateTime = myFile.LastAccessTime
            
            Console.WriteLine("最終更新日: " & lastWrite.ToString("yyyy年MM月dd日 HH時mm分"))
            Console.WriteLine("最終アクセス: " & lastAccess.ToString("yyyy/MM/dd"))
        End If
    End Sub
End Module

5. ファイル名や拡張子だけを切り出す方法

5. ファイル名や拡張子だけを切り出す方法
5. ファイル名や拡張子だけを切り出す方法

FileInfoは、ファイルの名前を細かく分析するのも得意です。例えば、「C:\temp\diary.txt」という住所から、ファイル名の「diary.txt」だけを取り出したり、後ろについている「.txt(拡張子)」という種類を示す部分だけを抜き出したりできます。これは、大量のファイルを整理するプログラムを作るときに非常に重宝します。パソコンを触ったことがない方でも、苗字と名前を分けて管理するようなものだと思えば簡単ですね。


Imports System.IO

Module Module3
    Sub Main()
        Dim info As New FileInfo("C:\temp\manual.pdf")
        
        ' ファイル名(拡張子あり)を取得
        Dim fullName As String = info.Name
        ' 拡張子(.pdfなど)だけを取得
        Dim extension As String = info.Extension
        ' フォルダ名(住所の通り道)を取得
        Dim dirName As String = info.DirectoryName
        
        Console.WriteLine("ファイル名: " & fullName)
        Console.WriteLine("種類(拡張子): " & extension)
        Console.WriteLine("保存場所: " & dirName)
    End Sub
End Module

6. サイズの単位を「KB」や「MB」に変換する考え方

6. サイズの単位を「KB」や「MB」に変換する考え方
6. サイズの単位を「KB」や「MB」に変換する考え方

FileInfoのLengthで取得できる単位は「バイト」です。しかし、大きなファイルだと「1048576バイト」のように数字が大きすぎて、人間には分かりづらくなってしまいます。そこで、普段パソコンでよく目にする「KB(キロバイト)」や「MB(メガバイト)」に変換する計算をプログラムに組み込んでみましょう。計算式は簡単で、1024で割るごとに単位が一つ上がります。数学が苦手な方でも、プログラムに計算を任せてしまえば大丈夫です。

例えば、1024バイトを1024で割ると1KBになります。さらにそれを1024で割ると1MBになります。このように、取得したデータを見やすい形に加工して表示することも、親切なプログラムを作るための大切なテクニックです。実際の現場では、このような変換処理がいたるところで使われています。


Imports System.IO

Module Module4
    Sub Main()
        Dim fInfo As New FileInfo("C:\temp\video.mp4")
        
        If fInfo.Exists Then
            ' バイトを1024で割ってキロバイト(KB)にする
            Dim sizeInKB As Double = fInfo.Length / 1024
            ' さらに1024で割ってメガバイト(MB)にする
            Dim sizeInMB As Double = sizeInKB / 1024
            
            ' 小数点第2位まで表示するように調整
            Console.WriteLine("ファイルサイズ: " & sizeInMB.ToString("0.00") & " MB")
        End If
    End Sub
End Module

7. ファイル属性の確認と読み取り専用判定

7. ファイル属性の確認と読み取り専用判定
7. ファイル属性の確認と読み取り専用判定

ファイルには、中身を書き換えられないようにロックされている「読み取り専用」という設定があります。FileInfoを使えば、そのファイルがロックされているかどうかもチェックできます。これは Attributes(アトリビュート) という項目で管理されています。もしプログラムでファイルを書き換えようとしてエラーが出る場合は、この属性をチェックすることで「あ、このファイルはロックされているから書き込めないんだ」と原因を特定できます。

未経験の方は、まず「FileInfoをNewして、ドット(.)を打つと色々な情報が出てくる」という感覚を掴んでください。VB.NETの開発画面(Visual Studioなど)を使っていれば、ドットを打った瞬間に、今回紹介したCreationTimeやLengthといった項目が一覧で表示されます。それを眺めているだけでも、「あ、こんなことも調べられるんだ!」という発見があって楽しいですよ。まずは自分の身の回りにあるファイルの情報を、プログラムで覗き見るところから始めてみましょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
ASP.NET
IISにASP.NETアプリをデプロイする基本手順を完全ガイド!初心者でもわかる公開方法
New2
VB.NET
VB.NETのFor Eachループを完全マスター!初心者でもわかるコレクション処理の基本
New3
ASP.NET
ASP.NETアプリのデプロイ手順の全体像!初心者でもわかるIIS・Docker・Azure App Service
New4
ASP.NET
ASP.NET MVCでJSONデータを返すAPIの作り方!初心者でもわかるデータ通信入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETの入出力の基本!初心者でもわかるConsole.WriteLine()とConsole.ReadLine()の使い方
No.2
Java&Spring記事人気No2
VB.NET
VB.NETでテキストファイルに書き込む方法を完全解説!WriteAllTextとAppendAllText
No.3
Java&Spring記事人気No3
VB.NET
VB.NETでStaticメソッドを定義する方法と活用例
No.4
Java&Spring記事人気No4
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介
No.5
Java&Spring記事人気No5
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用