.NET TIPS ファイルやディレクトリのサイズを取得するには?デジタルアドバンテージ 遠藤 孝信2005/09/30 |
|
|
本稿では、ファイル・サイズおよびディレクトリ・サイズ(ディレクトリに含まれているファイルのサイズ合計)を取得する方法について解説する。
FileInfoクラスによるファイル・サイズの取得
ファイル・サイズを取得するには、FileInfoクラス(System.IO名前空間)のLengthプロパティを利用する。FileInfoクラスはファイルやファイルの属性を操作するためのクラスだ。
具体的には、次に示すように、サイズを取得したいファイルのパスをコンストラクタのパラメータに指定してFileInfoクラスのインスタンスを作成し、Lengthプロパティの値を取得すればよい。
|
||
FileInfoクラスによるファイル・サイズの取得(上: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)配下にあるすべてのファイルのサイズ合計を表示する。
|
|
ディレクトリ・サイズを取得し表示するC#のサンプル・プログラム(dirsize.cs) | |
|
|
ディレクトリ・サイズを取得し表示するVB.NETのサンプル・プログラム(dirsize.vb) | |
このサンプル・プログラムでは、各ディレクトリのサイズを求めるGetDirectorySizeメソッドを再帰的に呼び出してディレクトリ階層をたどっている。DirectoryInfoクラスについては「TIPS:ファイルやディレクトリの一覧を取得するには?」でも解説しているので、そちらも参考にしていただきたい。
カテゴリ:クラス・ライブラリ 処理対象:ディレクトリ&ファイル 使用ライブラリ:FileInfoクラス(System.IO名前空間) 使用ライブラリ:DirectoryInfoクラス(System.IO名前空間) 関連TIPS:ファイルをコピー/削除/リネーム/移動するには? 関連TIPS:ファイルやディレクトリの一覧を取得するには? |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|