空のディレクトリに必要なスペースはどれくらいですか?
WindowsおよびNTFSファイルシステムでは、「0バイト」と表示されますが、これは不可能です。
ディレクトリは実際にどのくらい占めていますか?ファイルシステムまたはオペレーティングシステムに依存しますか?
空のディレクトリに必要なスペースはどれくらいですか?
WindowsおよびNTFSファイルシステムでは、「0バイト」と表示されますが、これは不可能です。
ディレクトリは実際にどのくらい占めていますか?ファイルシステムまたはオペレーティングシステムに依存しますか?
回答:
技術的には、プロパティウィンドウに表示されるのはフォルダーの内容であり、空の場合はディスク上の0バイトを占有します。
あなたの質問は、フォルダ構造がファイルシステム上でどのスペースを占有するかを扱っています。これは明らかにそれに依存しています。FAT32では、保存する必要があるのは、いくつかのフラグ(非表示、アーカイブ済み)、および名前とパスのみです。NTFSでは、アクセス許可などを保存する必要もあります。全体として、そのスペースはほとんど無視できます。
空のディレクトリ構造が占めるスペースは、名前とフォルダパスによって異なります。例として、すべてのフォルダーをルートドライブ(C:など)に配置し、26文字すべてのアルファベットを使用すると仮定します。10億の一意の名前を使用すると、log_26(1.000.000.000)=約7(6.3065)文字長のフォルダー名を使用できます。したがって、7バイト* 1.000.000.000はおよそ7GBのスペースに相当します。
これは、構造に必要なスペース名の量のみに基づく最小値です。それが示されるように、ファイルシステムは、そのファイル構造上のファイル名以外の多くの情報を保存します。
私はすべてのドライブに約100万のフォルダーとファイルがあるため、実際にはその価値にさえ達していません。これは非常に大まかな見積もりであることを忘れないでください。
現時点で最も使用されているファイルシステムは、(ほぼ間違いなく)FAT(ファイルアロケーションテーブル)およびNTFS(新技術ファイルシステム)と見なすことができます。FATは、Windows 95がFAT32と共にリリースされた1996年以来使用されています。NFTS(Windows)、HFS +(OSX)またはext3(Linux)などの他のより回復力のあるファイルシステムに置き換えられていますが、ほとんどのOSで十分にサポートされているため、ハンドヘルドデバイスまたはメモリカードまたはフラッシュドライブで依然として広く使用されていますそして何よりも簡単です。
大切なことは今。FATパーティション内のファイルとディレクトリは、それらに何も含まれていなくても、名前、場所、特定の属性などを持ち、それらはディレクトリテーブルと呼ばれるゾーンに格納されます。
ディレクトリ・テーブルは特殊なファイルである(すなわち、唯一のOSや特定のアプリケーションがそれを直接にアクセスすることができるように、定期的な使用から隠されています)。これはディレクトリ(別名フォルダ)を表し、その中に保存されているファイルまたはフォルダには、テーブルに32バイトのエントリがあります。ディレクトリテーブルはファイルであり、それは、次いで、(単一のファイル(または1)フィットの一部ディスク内の予め設定されたサイズで、すなわちボックス)1つまたは複数のクラスタを占めます。
そのため、最新のドライブ(> 512 MB)上のフォルダーまたはディレクトリには、テーブル(ソース)を格納するために、少なくとも 4 KBのオーバーヘッドがあります。ただし、これは、128の異なるファイル(4 * 1024 B / 32 B = 128)を同じフォルダーに保存できることを意味し、レコードを保存する際のオーバーヘッドは以前と同じ4 KBのままです。
最初の例に便乗すると、これは10億個のフォルダーのオーバーヘッドが32 GBになることを意味します。おおよそ7 GBの計算値ではありません。これらの32 GBには、短い名前(8文字のASCII文字)だけでなく、属性、フラグ、アクセス、作成および変更の日付、およびその他のレガシー属性も保存されます。
あなたはこのすべてを読むと仮定すると、あなたが持つかもしれない質問があるかもしれません:「まあ、これはすべてが順調と良いのですが、どのような長い名前、あるWabbajackかのようなさえhashy名e4d909c290d0fb1ca068ffaddf22cbd0?保存され、」
Windows 95のMicrosoftは、ユーザーエクスペリエンスを向上させるためにこの機能を追加することを決定しました。「ほぼ標準の」システムの破壊を避けるために、彼らはVFAT(仮想FAT)と呼ばれるきちんとした回避策を使用しました。基本的に、長いファイル名をファイルに収めるために、実際のファイルレコードの前に追加のレコードが書き込まれました(以前のシステムには表示されない特別な属性があります)。長いファイル名システムでは、最大255文字のUTF-16(Unicode)文字(ソース) (ソース)を使用できます。
すべてのフォルダーが9文字になるように最初の例を変更すると、長い名前を格納するためにもう1つのレコードを書き込む必要があるため、オーバーヘッドが32 GBから64 GBに倍増します。
NTFSに関するWikipediaの記事によると、すべての権限はマスターファイルテーブルに保存されます。ここに示されているように、ディスクデフラグツールを使用すると、スペースが明らかに表示されます。
MFTレコードがフォルダーまたはファイルの両方から占有するサイズについては、以下で説明します。
ファイルとフォルダーのレコードはそれぞれ1 KBで、MFTに格納されます。MFTの属性は、MFTの割り当てられたスペースに書き込まれます。ファイル属性に加えて、各ファイルレコードには、MFT内のファイルレコードの位置に関する情報が含まれています。
ファイルの属性がそのファイルのMFTファイルレコード内に収まる場合、それらは常駐属性と呼ばれます。ファイル名やタイムスタンプなどの属性は常に常駐しています。ファイルの情報量がそのMFTファイルレコードに収まらない場合、一部のファイル属性が非常駐になります。非常駐属性には、1つ以上のディスク領域のクラスターが割り当てられます。非居住属性の一部はMFTに残り、外部クラスターを指します。NTFSは、すべての属性レコードの場所を記述する属性リスト属性を作成します。NTFSファイル属性タイプの表には、NTFSによって現在定義されているファイル属性がリストされています。
したがって、NTFSでは、非常に長い引数リストとアクセス許可リストがない限り、フォルダーは少なくとも1 KBのスペースを占有します。その時点で、MFTレコードはパーティション内の追加クラスターを占有し、そのサイズはフォーマット方法に依存しますが、その投稿でMicrosoftが2GBを超える場合は4KBクラスターを推奨しています。
実世界の例では、空き領域を記録した後、大きなディレクトリ構造を作成し、新しい空き領域を差し引いて、使用されている領域を見つけました。曜日ごとにディレクトリ0〜6を作成し、その後、時間帯に0〜23のディレクトリを作成し、時間帯に0〜59のディレクトリを作成しました。合計で10,080個のディレクトリ。ディスク使用量が6,926,336バイト変化しました。これは、ディレクトリごとに687バイトになります。気になる場合は、1TBドライブの0.0006%になります(1TBを1024 ^ 4と計算した場合)。