公開日: 2009年04月02日(Thu)
普段意識することはまずないが、Windows や Linux などのOSの限界に図らずも挑戦してしまうことがある。たとえば、ファイル名の長さとか、パスの深さとか、作成できるディレクトリ数などだ。PicklesCrawler のテスト中に、この類の問題にぶち当たったので、ちょっと調べてみた。そのメモ。
Windows では、(厳密にはちょっと違うみたいだけど) ファイル名の長さは 絶対パスを含めて255文字まで
しか付けられないらしい。
WindowsXPで最高に長いパスのディレクトリに、新規テキストファイルを作ろうとしてみたら、
ファイル '新規テキスト ドキュメント.txt' を作成できません。
指定されたファイルが見つかりません。
と言われ、ディレクトリを作ろうとすると、
フォルダ '新しいフォルダ' を作成できません。
ファイル名または拡張子が長すぎます。
と言われ、どちらも作れないことが確認できた。
ルートディレクトリには、ファイルが 512個 までしか作成できません
というルールがあるようだが、それ以外の下層のディレクトリではファイル数/ディレクトリ数共に上限はないらしい。
下記、参考にしたウェブページ。
多くの UNIX 系 OS においては、ファイル名の長さの上限は 255バイト
、パス名全体の長さの上限は 1023バイト
という。Windowsよりも長いパス名が使えるようだ。
昔、Linux 上で 1つのディレクトリの直下に 30000個 強のディレクトリを作ったら落ちるという現象に遭遇したことがある。こちらによると、一つのディレクトリに 32768 のサブディレクトリの上限
があり、一つのディレクトリ内のファイル数は、実運用上約 10000~15000 個が上限
とある。
システム全体の数は i-node によると書かれている。
下記、参考にしたウェブページ。
OSっていう切り口で検索してみたけれども、ファイルシステムについて調べてみた方がいいのかな?という気がしてきた。
難しくてよくわかんない。いっぱい勉強が要りそうだ。
まぁ、また今度・・・。
公開日: 2009年04月02日(Thu)