44
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

なにゆえファイルの「サイズ」と「ディスク上のサイズ」の値が異なるのか

Last updated at Posted at 2022-05-31

はじめに

Web屋さんをしていると、画像やPDFのサイズをHTML上に記載したりするときなど、何かとデータサイズを気にする場面が多いです。

例えば、ファイルサイズはMacのFinderだとこんな感じで表示されます。

スクリーンショット 2022-05-31 14.45.10.png

Windowsのエクスプローラだと以下のように表示されます。1

スクリーンショット 2022-05-31 14.47.07.png

上記のファイルの場合、サイズは630,055バイトでディスク上のサイズは630,784バイトのようです。

なんでサイズが違うの」という方
結局ファイルサイズ記載する際はどっち書けばいいの」と思った方

には、この記事は有用かと思います。

※ちなみに、そこまで小難しい詳細は記載せずかなり噛み砕いておりますので、もっと深い内容に興味がある方は基本情報技術者などの勉強をオススメします。

結論

  • サイズディスク上のサイズは異なるものを指す
  • ファイルサイズを記載したいときは、ディスク上のサイズではなく単なる「サイズ」を書く

解説

保存媒体へのデータの格納

HDDやSSD、USBフラッシュドライブなどにデータを保存する際、データはその媒体内で区切られたロッカーのような入れ物に放り込まれます。

このロッカー1つ1つのこと、つまりファイルやディレクトリに割り当てられる最小の容量論理単位を、クラスタまたはアロケーションユニットと呼びます。

クラスタサイズは環境(フォーマット時に選択したクラスタサイズなど)によって異なりますが、例えば4KBだったとすると、データサイズは1Byteだったとしても、クラスタに格納されるとディスク上は4KBの領域を確保していることになります。

クラスタ.png

すると結果として、我々がそのデータをFinderなどで確認すると、実際のデータサイズは1Byteでも、ディスク上のサイズはそれを格納したクラスタサイズである4KB、と表示されるわけです。

もし、この格納するデータが4KB以上だった場合は、複数のクラスタに分けて格納されます。

クラスタ (2).png

Webサイトなどでデータのサイズを明記するとき

さて、前述した通り、HTMLページ上にPDFを添付する際、そこに「◯◯.pdf (500KB)」みたいな感じでデータサイズを併記することは間々あると思います。

ファイルシステムやフォーマットの設定などによって、クラスタサイズは環境によって異なるため、Finderなどを確認しそれを転記する場合は、サイズの方をチェックすると適当かと思います。

つまり、先程のデータ↓をFinderで確認した場合は、

スクリーンショット 2022-05-31 14.45.10.png

630055 \div 1024 \fallingdotseq 615.2880859375\ldots

となり、615KBと記載します。
(正確に2進接頭辞を使えとかそういう話は別の場所でしてもろて)

まとめ

「ディスク上のサイズ」は実際のデータサイズとは異なるということを説明しました。

計算機科学のようなものを学んだことがないと実は躓きそうなポイントなのではないかと思い、今回は実務上知っておけばいいかなくらいの情報にとどめてまとめました。

保存する媒体によって理解するための知識がもっと必要だったり、まだまだ序章も序章の話なので、興味がある方はぜひ調べてみてください。

  1. 画像はVM上の表記であるため、本来のWindowsのファイルシステムだとMacと同じ数値ではないかもしれません

44
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?