カテゴリ: C# 更新日: 2025/11/06

C#でファイルサイズや更新日時を取得する方法(FileInfoクラス)

C#でファイルサイズや更新日時を取得する方法(FileInfoクラス)
C#でファイルサイズや更新日時を取得する方法(FileInfoクラス)

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

生徒

「先生、C#でファイルの大きさとか、いつ更新されたのかを調べたいんですけど、どうすればいいですか?」

先生

「良い質問ですね。C#ではFileInfoクラスを使えば、簡単にファイルのサイズや最終更新日時を取得できますよ。」

生徒

「FileInfoクラス?それって何をするものなんですか?」

先生

「FileInfoクラスは、ファイルに関するさまざまな情報を取得したり、操作したりできる便利なクラスなんです。実際の使い方を見てみましょう。」

1. FileInfoクラスとは?

1. FileInfoクラスとは?
1. FileInfoクラスとは?

FileInfoクラスは、C#の標準ライブラリ(System.IO名前空間)に用意されている、ファイルに関する情報を扱うためのクラスです。

このクラスを使うと、次のようなことが簡単にできます。

  • ファイルのサイズ(バイト数)を取得する
  • ファイルの作成日時更新日時を確認する
  • ファイルを削除コピー移動する

FileInfoは「ファイルの名札」のようなもので、そのファイルのさまざまな情報を教えてくれます。

2. ファイルサイズを取得する方法

2. ファイルサイズを取得する方法
2. ファイルサイズを取得する方法

まずは、FileInfoクラスを使ってファイルのサイズを取得してみましょう。ファイルサイズは「バイト(Byte)」という単位で表されます。1キロバイト(KB)は約1000バイトです。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 調べたいファイルのパスを指定します
        string filePath = "C:\\example\\sample.txt";

        // FileInfoクラスのインスタンスを作成
        FileInfo fileInfo = new FileInfo(filePath);

        // ファイルのサイズを取得
        long fileSize = fileInfo.Length;

        Console.WriteLine($"ファイルサイズ: {fileSize} バイト");
    }
}

ファイルサイズ: 2048 バイト

fileInfo.Lengthプロパティで、ファイルのサイズ(バイト数)を取得できます。もしファイルが存在しない場合は、エラーになるため、あらかじめ存在確認をしておくと安全です。

3. ファイルの更新日時を取得する方法

3. ファイルの更新日時を取得する方法
3. ファイルの更新日時を取得する方法

次に、ファイルが「最後に変更された日時(最終更新日時)」を取得する方法です。これを使えば、「このファイルはいつ編集されたか」を調べることができます。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = "C:\\example\\sample.txt";
        FileInfo fileInfo = new FileInfo(filePath);

        // 最終更新日時を取得
        DateTime lastUpdate = fileInfo.LastWriteTime;

        Console.WriteLine($"最終更新日時: {lastUpdate}");
    }
}

最終更新日時: 2025/10/30 15:42:10

LastWriteTimeプロパティは、ファイルが最後に書き換えられた日時を表します。ほかにも、次のようなプロパティがあります。

  • CreationTime:ファイルが最初に作成された日時
  • LastAccessTime:最後にファイルを開いた日時

これらを組み合わせることで、ファイルの履歴を確認したり、更新管理を行うプログラムを作成できます。

4. ファイルの存在確認をして安全に情報を取得する

4. ファイルの存在確認をして安全に情報を取得する
4. ファイルの存在確認をして安全に情報を取得する

ファイル情報を取得する前に、そのファイルが本当に存在しているかを確認しておくことが大切です。存在しないファイルを指定すると、エラー(例外)が発生してしまいます。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = "C:\\example\\sample.txt";

        if (File.Exists(filePath))
        {
            FileInfo fileInfo = new FileInfo(filePath);
            Console.WriteLine($"ファイルサイズ: {fileInfo.Length} バイト");
            Console.WriteLine($"最終更新日時: {fileInfo.LastWriteTime}");
        }
        else
        {
            Console.WriteLine("指定したファイルが見つかりません。");
        }
    }
}

ファイルサイズ: 4096 バイト
最終更新日時: 2025/10/30 17:21:33

File.Exists()メソッドを使うと、ファイルの存在を確認できます。これにより、プログラムの動作をより安全にすることができます。

5. FileInfoクラスで取得できる主な情報一覧

5. FileInfoクラスで取得できる主な情報一覧
5. FileInfoクラスで取得できる主な情報一覧

FileInfoクラスには、ほかにも便利なプロパティがあります。ファイル管理ツールやバックアップソフトを作る際にも役立ちます。

プロパティ名 説明
Length ファイルサイズ(バイト単位)を取得します。
CreationTime ファイルが作成された日時を取得します。
LastWriteTime ファイルが最後に更新された日時を取得します。
LastAccessTime ファイルが最後にアクセスされた日時を取得します。
Extension ファイルの拡張子(例:.txt、.jpgなど)を取得します。
FullName ファイルの完全なパスを取得します。

6. ちょっとした応用例:フォルダ内のすべてのファイルの情報を表示する

6. ちょっとした応用例:フォルダ内のすべてのファイルの情報を表示する
6. ちょっとした応用例:フォルダ内のすべてのファイルの情報を表示する

FileInfoクラスは、1つのファイルだけでなく、フォルダ内の全ファイルの情報をまとめて取得することもできます。次の例では、指定したフォルダにあるすべてのファイルのサイズと更新日時を一覧表示します。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string folderPath = "C:\\example";
        DirectoryInfo dir = new DirectoryInfo(folderPath);

        foreach (FileInfo file in dir.GetFiles())
        {
            Console.WriteLine($"ファイル名: {file.Name}");
            Console.WriteLine($"サイズ: {file.Length} バイト");
            Console.WriteLine($"更新日時: {file.LastWriteTime}");
            Console.WriteLine("----------------------------");
        }
    }
}

ファイル名: sample.txt
サイズ: 2048 バイト
更新日時: 2025/10/30 16:12:55
----------------------------
ファイル名: data.csv
サイズ: 1536 バイト
更新日時: 2025/10/30 14:03:11
----------------------------

このように、FileInfoクラスとDirectoryInfoクラスを組み合わせることで、フォルダ内のファイル情報をまとめて管理することも可能です。

カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.7
Java&Spring記事人気No7
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド