OS依存:ファイルシステムの文字数の上限について

普段意識することはまずないが、Windows や Linux などのOSの限界に図らずも挑戦してしまうことがある。たとえば、ファイル名の長さとか、パスの深さとか、作成できるディレクトリ数などだ。PicklesCrawler のテスト中に、この類の問題にぶち当たったので、ちょっと調べてみた。そのメモ。

Windows系

ファイル名やパスの長さ

Windows では、(厳密にはちょっと違うみたいだけど) ファイル名の長さは 絶対パスを含めて255文字までしか付けられないらしい。

WindowsXPで最高に長いパスのディレクトリに、新規テキストファイルを作ろうとしてみたら、

ファイル '新規テキスト ドキュメント.txt' を作成できません。
指定されたファイルが見つかりません。

と言われ、ディレクトリを作ろうとすると、

フォルダ '新しいフォルダ' を作成できません。
ファイル名または拡張子が長すぎます。

と言われ、どちらも作れないことが確認できた。

ファイル数・ディレクトリ数

ルートディレクトリには、ファイルが 512個 までしか作成できません というルールがあるようだが、それ以外の下層のディレクトリではファイル数/ディレクトリ数共に上限はないらしい。

下記、参考にしたウェブページ。

UNIX/Linux系

ファイル名やパスの長さ

多くの UNIX 系 OS においては、ファイル名の長さの上限は 255バイトパス名全体の長さの上限は 1023バイト という。Windowsよりも長いパス名が使えるようだ。

ファイル数・ディレクトリ数

昔、Linux 上で 1つのディレクトリの直下に 30000個 強のディレクトリを作ったら落ちるという現象に遭遇したことがある。こちらによると、一つのディレクトリに 32768 のサブディレクトリの上限があり、一つのディレクトリ内のファイル数は、実運用上約 10000~15000 個が上限 とある。

システム全体の数は i-node によると書かれている。

下記、参考にしたウェブページ。

OSじゃなくてファイルシステム依存なのかしら?

OSっていう切り口で検索してみたけれども、ファイルシステムについて調べてみた方がいいのかな?という気がしてきた。

難しくてよくわかんない。いっぱい勉強が要りそうだ。

まぁ、また今度・・・。


プロフィール

コヤナギ トモヤ

まったりウェブ系コーダーしてます。PHP製静的CMS Pickles 2 を開発しています。

RSSフィード

  • このサイトは、 コヤナギ トモヤ の個人サイトです。
  • 個人的な主張や、活動の記録などを掲載しています。 所属する企業、団体、その他の意見や立場を代表するものではありません。
  • 掲載された内容は古くなっている可能性があります。 特に古い記事では、現在の筆者の考えと異なる主張をしていることがありますが、記録としてそのまま残しております。 予めご了承ください。
ページの先頭へ戻る