すべてのカテゴリ » インターネット・パソコン » ソフトウェア » ソフトウェア全般

質問

終了

ハードディスクの容量は、文字一文字でも何バイトか食うようですが、ファイル名の文字でも食うんですか?長いファイル名だと、それだけで余計に使用バイト数が多くなるのでしょうか?

  • 質問者:ハードディスク
  • 質問日時:2008-12-04 20:09:30
  • 1

並び替え:

可変長管理か、固定長管理か、で変わってきますが、通常の使用に於いて、そこまで意識する必要はありません。
何故なら、どちらにせよ、或る程度の容量を確保したうえで、ブロック単位で管理するからです。
セクターやシリンダーなど、幾つかの方式がありますが、基本は同じです。
ちなみに、ブロック内は連続領域ですが、ブロックは、離れていても構わないようになっていますので、使用量が大きく増減すると、断片化(連続してない離れた状態)が発生することになります。

この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

最初に結論を…ファイル名についてはあまり気にする必要はありません.
以下の説明は興味があれば読んでください.

ハードディスクは通常,512バイト単位の「セクタ」という単位で管理されています.ですが,OSでは管理を簡単にするため,連続したセクタを幾つかまとめて「クラスタ」という単位で管理しています.ですが,NTFSにおいては「クラスタ」とは呼ばず,「アロケーションユニット」と呼ばれますが,意味するところは同じです.標準アロケーションユニットサイズは 4KBになります(フォーマット時に変更も可能ですが…普通は指定しません).

つまり,1バイトの文字をファイルに記録したとしても,その内容を保存するための領域は4KB単位で消費されることになります.「ABCD」と記録しても,「小心者なんですよぉ」と記録しても,どちらも4096バイト以下なので,ハードディスクの消費はどちらも4KBになります(4096バイト単位に満たない部分は無駄な領域になります).

但し,NTFSにおいては,データサイズが小さい場合,後述するMFT(Master File Table)ファイルの中に記録されてしまうため,管理領域しか消費されず,データ格納用の領域が存在しない…という特徴もあったりしますが…ここまで覚えても普通は役に立ちません.(;´ω`)

次にお尋ねのファイル名ですが,これは通常はファイルとしては見えませんが,実際にはファイルとして記録されます(MFTファイルと言います).従って,これも「4096バイト単位で消費されていく」ことに変わりはありません.ファイルの管理にはファイル名だけでなく,ファイルサイズ,作成日時,更新日時,ファイルの属性,アクセス権限等も記録されるので,ファイル名が1文字であったとしても,1つのファイルに対して通常は1KBの領域が割り当てられます.
なので,ファイル名の長さよりもファイルの数が多い場合に管理用の領域に多くのディスク領域を消費することになります.

FAT系のファイルシステムについては今ではハードディスクにはほとんど使われないと思うので省略します(…説明が面倒なだけ…とも言います).(;´ω`)

この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

Windows(NTFS)およびMac OSXの場合、ファイル名に使用できる文字数(半角換算)では、
255文字までとなっているので、これ以上消費する事はありません。
いずれもUNICODE換算ですので、バイト数で言うと512バイトになります。

古今のHDDやフラッシュメモリー量からすると、ほとんど気にする必要が無いほど、
少ないと思って良いと思います。

  • 回答者:Maku (質問から4時間後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

まず、ファイルの中身のデータについて言いますと、ファイルサイズには最小単位というものがありまして、OS(例えばWindows)が管理しているのですが、そのサイズが一般に数キロバイト単位で管理していますので、ファイルサイズがその単位以下であるなら、HDDの中で消費するデータ容量は同じと言えます。
つまり、仮に最小単位が4キロバイトとすると、1バイトのファイルでも4キロバイトのファイルでも、HDDの中では同じ容量を消費しているということです。
次にファイル名ですが、こちらは管理方法が異なり、例えばFAT(ファイルアロケーションテーブル)とかNTFSとかいう名前で呼ばれていますが、OSが管理している領域に書き込まれます。
一般に、HDDの番号の若いLBA(ロジカルブロックアドレス)側に書き込まれます。ここの最小単位は何バイト単位かちょっとわかりませんが(多分HDDのセクターサイズと同じ512バイトだと思いますが)、どのファイルがどのLBAに書かれているかを管理しています。
そして、この部分に関しては無駄なく詰めて書き込まれていますので、短い名前のファイルでも512バイトを占有してしまうことはありません。
しかし、やはりファイル名が長くなれば、それだけHDD内に書き込まれているわけですから、その分は容量を食います。
長々と書きましたが、結論としては、ファイル名が長ければその分だけHDD上にはデータとして書かれるわけですから、余計に使用バイト数が多くなると言えます。
ただ、現在のHDDの容量は数百ギガバイト(1ギガ=1000000000)ですので、数バイト程度のファイル名は気にしなくても良いということになります。

  • 回答者:コペン (質問から51分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

ロングファイル名は13文字ごとに32バイトかかります。
それにショートファイル名も付きますから、ファイル一つで最低64バイトです。
ファイル本体はセクタ単位で存在してます。
フォーマットの方法でこの1セクタの単位は変わります。
最低512バイト。
セクタの単位が小さければ、ディスクの無駄なスペースを少なくできますが、そのかわり読み書きが遅くなります。
実際の操作ではセクタを複数集めたクラスタという単位で扱われます。
パソコンの設定でクラスタサイズは変更できます。
速く扱いたいのなら大きく、無駄を少なくしたいなら小さくします。

例えばクラスタサイズ2KBなら、"a"と一文字書いたテキストを"a.txt"という名前でディスクに保存すれば、名前領域で64バイトとファイル本体サイズが2KBかかります。

===補足===
ごめんなさい、ちょっとボケてて例が間違ってました。
この例だとロングネーム使わないから、名前領域の使用は32バイトですね。
"123456789.txt"などの場合名前領域が64バイト使用されます。

  • 回答者:size (質問から41分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

ファイル名は、ファイルの内容ではなく、OSのファイルシステム上の管理ブロックに格納されます。
ですので、長い名前でも短い名前でも、ディスクを占有する容量は変わりません。

  • 回答者:らむ (質問から23分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

文字でも絵でも容量は食います。
漢字一文字は2バイトです。
俗に言う英数文字は1バイトです。
長いファイル名はそれなりに使用バイト数がかかりますが、今では文字数を気にする必要が無いくらいハードディスクの容量も大きくなりました。
もしろ写真や絵、動画ファイルがとても大きな容量を占めています。

  • 回答者:太平 (質問から20分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

一文字で一バイトと考えてください。
なので 長いタイトルですと必然的に使用バイトが上がります。

  • 回答者:匿名希望 (質問から5分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

一般的に1文字表すのに、半角だと1b 全角だと2b必要です。
PC上で表現されているものの殆どはデータとして容量をくっています。

  • 回答者:匿名希望 (質問から3分後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る