孝信2005/09/30本稿では、ファイル・サイズおよびディレクトリ・サイズ(ディレクトリに含まれているファイルのサイズ合計)を取得する方法について解説する。FileInfoクラスによるファイル・サイズの取得ファイル・サイズを取得するには、FileInfoクラス(System.IO名前空間)のLengthプロパティを利用する。FileInfoクラスはファイルやファイルの属性を操作するためのクラスだ。具体的には、次に示すように、サイズを取得したいファイルのパスをコンストラクタのパラメータに指定してFileInfoクラスのインスタンスを作成し、Lengthプロパティの値を取得すればよい。fi.LengthFileInfoクラスによるファイル・サイズの取得(上:C#、下:VB.NET)ファイルのサイズは整数型(Integer)ではなく長整数型(Long)の値である点に注意してほしい。クラス・ライブラリにはファイルのコピーや削除を行うためのメソッドを集めたクラスとしてFileクラス(System.IO名前空間)があるが(参考:「TIPS:ファイルをコピー/削除/リネーム/移動するには?」)、このクラスにはファイル・サイズを取得するメソッドが用意されていないため、ここで示したようにFileInfoクラスを利用する必要がある。ファイルのストリームを開いているときには、FileStreamクラス(System.IO名前空間)のLengthプロパティからも、ファイル・サイズを取得することができる。ディレクトリ・サイズの取得ファイルに対するFileInfoクラスのように、ディレクトリについてはDirectoryInfoクラス(System.IO名前空間)が用意されているが、このクラスにはディレクトリ・サイズを取得するためのプロパティは存在しない。従って、ディレクトリ・サイズを取得するには、まずDirectoryInfoクラスのGetFilesメソッドを利用して、そのディレクトリに含まれるファイルのFileInfoオブジェクト(の配列)を取得し、それぞれのファイル・サイズの合計を求める必要がある。すべてのサブディレクトリに含まれるファイルのサイズも合わせたディレクトリ・サイズが必要な場合には、ディレクトリ階層をたどりながらファイル・サイズの合計を求めていかなければならない。DirectoryInfoクラスにはGetDirectoriesメソッドが用意されており、そのディレクトリに含まれるすべてのサブディレクトリについてのDirectoryInfoオブジェクト(の配列)を取得できるため、このメソッドを利用すればディレクトリの階層をたどっていくことが可能だ。次のサンプル・プログラムは、FileInfoクラスとDirectoryInfoクラスを利用して、ディレクトリ(ここではc:\Inetpub)配下にあるすべてのファイルのサイズ合計を表示する。dirsize.vbディレクトリ・サイズを取得し表示するVB.NETのサンプル・プログラム(dirsize.vb)dirsize.vbのダウンロードこのサンプル・プログラムでは、各ディレクトリのサイズを求めるGetDirectorySizeメソッドを再帰的に呼び出してディレクトリ階層をたどっている。DirectoryInfoクラスについては「TIPS:ファイルやディレクトリの一覧を取得するには?」でも解説しているので、そちらも参考にしていただきたい。より自動抽出したものです。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。