【PHP8.x】getSizeメソッドの使い方

getSizeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getSizeメソッドは、DirectoryIteratorオブジェクトが現在指しているファイルまたはディレクトリのサイズをバイト単位で取得するメソッドです。DirectoryIteratorクラスは、ファイルシステム内のディレクトリを反復処理し、その中のファイルやサブディレクトリの情報を取得する際に使用されます。このgetSizeメソッドは、反復処理中の個々の要素に対して、そのサイズ情報を得るために利用されます。

具体的には、ファイルに対してこのメソッドを呼び出すと、そのファイルの正確なバイト数を整数値(int型)で返します。例えば、1024バイトのファイルであれば1024という値が戻り値として得られます。

一方、ディレクトリに対してこのメソッドを呼び出した場合、多くのファイルシステムではディレクトリ自体のメタデータ(エントリ情報など)のサイズが返されるため、通常は0バイトまたは非常に小さな値が返される点にご注意ください。これは、ディレクトリ内の全ファイルの合計サイズを計算して返すものではなく、ディレクトリそのもののディスク上のサイズを示すためです。

もし何らかの理由でファイルまたはディレクトリのサイズを取得できなかった場合、このメソッドは0を返します。この挙動により、サイズの取得に失敗した場合でも、プログラムが予期せぬエラーを起こすことなく処理を継続できるようになっています。

このメソッドは、ファイルのサイズに基づいて特定の処理を適用したい場合や、ファイルサイズの一覧を作成したい場合など、ファイルシステム操作における様々な場面で活用されます。

構文(syntax)

1<?php
2$iterator = new DirectoryIterator('.');
3
4foreach ($iterator as $fileinfo) {
5    if ($fileinfo->isFile()) {
6        echo $fileinfo->getSize();
7        break;
8    }
9}

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|false

DirectoryIterator::getSizeメソッドは、現在のエントリ(ファイルまたはディレクトリ)のサイズをバイト単位で返します。ファイルでない場合や、サイズを取得できない場合はfalseを返します。