ファイルサイズを取得する方法について紹介します。
といっても超簡単です。
FileInfoを使用します。
FileInfoのLengthプロパティを使用してファイルサイズを取得する
FileInfoのLengthプロパティでファイルサイズが取得可能です。
ソースコードは以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | string filename = "c:\\temp\\test.jpg"; FileInfo f = new FileInfo(filename); //ファイルのサイズを取得 float byteFileSize = (float)f.Length; // ファイルサイズをバイトで取得します。 string printFileSize = string.Format("{0} Byte", byteFileSize); Debug.WriteLine(printFileSize); float kiloFileSize = byteFileSize / 1024f; // バイト→キロバイトに変換 printFileSize = string.Format("{0} KByte", kiloFileSize); Debug.WriteLine(printFileSize); float megaFileSize = kiloFileSize / 1024f; // キロバイト→メガバイトに変換 printFileSize = string.Format("{0} MByte", megaFileSize); Debug.WriteLine(printFileSize); string sfileSize = string.Format("{0} Kbyte", printFileSize); |
まずはFileInfoクラスのコンストラクタにファイルパスを指定してあげます。
1 | FileInfo fi = new FileInfo(filename); |
↓そのあとは、Lengthプロパティにアクセスすればそのファイルのサイズが取得できます。
この時、ファイルサイズは「バイト」で取得されます。
1 | float byteFileSize = (float)fi.Length; |
ファイルサイズをバイト→キロバイト→メガバイトに変換してみる
すでに先ほどソースコードは記載済みですが、改めて記載しておきます。
以下では、このようなことをしています。
- ファイルサイズ(バイト)をDebug出力
- バイト→キロバイトに変換
- ファイルサイズ(キロバイト)をDebug出力
- キロバイト→メガバイト
1 2 3 4 5 6 7 8 9 10 | string printFileSize = string.Format("{0} Byte", byteFileSize); Debug.WriteLine(printFileSize); float kiloFileSize = byteFileSize / 1024f; // バイト→キロバイトに変換 printFileSize = string.Format("{0} KByte", kiloFileSize); Debug.WriteLine(printFileSize); float megaFileSize = kiloFileSize / 1024f; // キロバイト→メガバイトに変換 printFileSize = string.Format("{0} MByte", megaFileSize); Debug.WriteLine(printFileSize); |
バイト→キロバイトへの変換は単純で、バイトを1024で割ってあげるだけです。
ここではfloat型で扱うようにしています。
キロバイト→メガバイトも同様に、メガバイトをさらに1024で割るだけです。
実行すると、(例えば)こんな感じのDebug分が出力されます。(ここでは桁数とかは気にしていません)
3650951 Byte
3565.382 KByte
3.481818 MByte
まとめ
- ファイルサイズは、FileInfoのLengthプロパティで取得可能
- 取得できるファイルサイズは「バイト」
- バイト→キロバイトへの変換は「1024で割る」
- キロバイト→メガバイトへの変換は「1024で割る」