C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でファイルサイズを取得する方法|FileInfoクラスのLengthプロパティ活用ガイド

C#でファイルサイズを取得したい場合、FileInfoクラスを使うのが最も一般的な方法です。この記事では、FileInfoクラスの基本から、単一ファイルおよび複数ファイルのサイズ取得方法まで、実例付きでわかりやすく解説します。

FileInfoクラスとは

FileInfoクラスは、C#においてファイルとその操作を扱うためのクラスです。ファイルの作成・削除・読み取りなどに使用できるプロパティやメソッドを豊富に提供しており、ファイルへのデータ書き込みにはStreamWriterクラスと組み合わせて使用することもできます。FileInfoクラスはSystem.IO名前空間に属しています。

主なプロパティ一覧

  • Directory:ファイルの親ディレクトリを表すオブジェクトを取得します。
  • DirectoryName:ファイルの親ディレクトリの完全なパスを取得します。
  • Exists:操作を実行する前に、ファイルが存在するかどうかを確認できます。
  • IsReadOnly:ファイルが読み取り専用(変更不可)かどうかを示す値を取得または設定します。
  • Length:ファイルのサイズ(バイト数)を取得します。
  • Name:ファイルの名前を取得します。

ファイルサイズの取得に使うのは、この中のLengthプロパティです。戻り値はlong型(バイト単位)となります。

例1:単一ファイルのサイズを取得する

class Program{
    public static void Main(){
        var path = @"C:\Users\Koushik\Desktop\Questions\ConsoleApp\Data.csv";
        long length = new System.IO.FileInfo(path).Length;
        System.Console.WriteLine(length);
    }
}

出力結果

12

この例では、FileInfoオブジェクトを生成すると同時にLengthプロパティへアクセスし、Data.csvファイルのサイズ(12バイト)を1行で取得しています。コードがシンプルで可読性も高いのがポイントです。

例2:ディレクトリ内の全ファイルのサイズを一覧表示する

DirectoryInfoクラスとGetFilesメソッドを組み合わせれば、フォルダ内のすべてのファイルについて、名前とサイズをまとめて取得できます。

class Program{
    public static void Main(){
        var path = @"C:\Users\Koushik\Desktop\Questions\ConsoleApp";
        DirectoryInfo di = new DirectoryInfo(path);
        FileInfo[] fiArr = di.GetFiles();
        Console.WriteLine("The directory {0} contains the following files:", di.Name);
        foreach (FileInfo f in fiArr)
            Console.WriteLine("The size of {0} is {1} bytes.", f.Name, f.Length);
    }
}

出力結果

The directory ConsoleApp contains the following files:
The size of ConsoleApp.csproj is 333 bytes.
The size of Data.csv is 12 bytes.
The size of Program.cs is 788 bytes.

まとめ

C#でファイルサイズを取得するには、System.IO名前空間のFileInfoクラスのLengthプロパティを使用します。単一ファイルならnew FileInfo(パス).Lengthだけで済み、複数ファイルを扱いたい場合はDirectoryInfo.GetFiles()でFileInfo配列を取得してループ処理すると効率的です。なお、実際の開発ではExistsプロパティでファイルの存在確認を行ってからアクセスすると、例外発生を防げるので安全です。

  1. 画像ファイルのサイズを小さくする方法|画質を保ちながら軽量化するテクニック

    以前、エクスプローラーのメール送信オプションや「Image Resizer for Windows」というデスクトップアプリを使って画像ファイルのサイズを縮小する方法をご紹介しました。どちらも優れた方法ですが、画像を最適化するアプローチは他にもいくつかあります。また、多くのサイトではペイント(Paint)の使用を推奨していますが、実際に試してみると画質が大幅に低下してしまうため、おすすめできません。 まず理解しておきたいのは、画像サイズを縮小する手法の中には画質が低下してしまうものがあるという点です。Web表示用であれば問題ないことも多いですが、印刷用途には向きません。これは一般的に、画像の解

  2. Javaでディレクトリ内のjpgファイル一覧を取得する方法

    FilenameFilterインターフェースを使った方法Fileクラスのlist(FilenameFilter filter)メソッドは、現在のFileオブジェクトが表すパスに存在するすべてのファイルおよびディレクトリの名前をString配列として返します。ただし、返される配列には、指定したフィルター条件を満たすファイル名のみが含まれます。FilenameFilterは、次の単一のメソッドを持つJavaのインターフェースです。accept(File dir, String name)拡張子に基づいてファイル名を取得したい場合は、このインターフェースを実装したクラスを作成し、そのインスタンスをF