web-dev-qa-db-ja.com

ファイル名はどのように保存されますか?

ファイルの名前を変更してもハッシュは変更されないことに気づきました。また、空のファイルを作成すると、ファイルが0バイトになりますが、ファイル名が付いていることに気付きました。

ファイル名はデバイス間でファイルと一緒に移動するように見えるので、ファイル名は正確には何であるか疑問に思いました。ハッシュを変更せずに変更できるのはなぜですか。また、スペースを占有しないように見えるのはなぜですか。

それらがどのように保存されているかを理解していれば、それらの質問に答えることができると思います。

6
Louis Waweru

NTFSでは、すべてのファイルデータ(ファイル名、作成日、アクセス許可(アクセス制御リストを使用)、および内容)は マスターファイルテーブルにメタデータとして格納されます です。 Windowsの世界では、 ファイルアロケーションテーブル についても聞いたことがあるかもしれません。他のファイルシステムには他の名前と構造があります。

すべてのファイルシステムはこのように機能します。 ブートセクタ の直後、通常はディスクの最初に、一定量のスペースが予約されています。そのスペースには、ファイルを取得するための情報を含むデータ構造が含まれています。

マスターファイルテーブルはファイルではありません。整理されたデータです。実際のところ、ファイルは、MFT、FAT、または同様のものに格納された、開始とサイズを持つ単なるデータです。ファイル名を変更しても、ファイルは変更されず、マスターファイルテーブルの数バイトだけが変更されます。

名前と属性はデータとは異なるため、Linuxサーバーに保存されているファイルをWindowsマシンにダウンロードできます。メタデータではなく、データが転送されます。ファイルに名前を付けて場所を自分で選択する必要があります(ただし、サーバーとブラウザーは元のファイル名をヒントにすることができます)。

10
ixe013