ゼロバイトファイルまたはゼロ長ファイルとは、データを含まないコンピュータファイルのことです。ファイルのサイズ(長さとも呼ばれる)はバイト単位で測定されることが多いため、このようなファイルの長さはゼロバイトになります。[ 1 ]
ゼロバイトファイルを作成する方法は数多くありますが、意図的に作成する一般的な方法の1つは、コマンドを使用することですtouch。コマンドラインは、abctouch abcという名前のゼロバイトファイルを作成します。
ファイルの作成は、まず長さがゼロの状態で行われますが、通常は作成後すぐにデータが書き込まれるため、ユーザーがゼロバイト状態のファイルに気づくことはほとんどありません。ゼロバイトファイルが存在することは、プログラムの不具合を示している可能性があります。よくあるケースとしては、データをメモリにキャッシュし、後でストレージに書き出すというものがあります。ストレージに書き出さないプログラム(異常終了など)は、誤ってゼロバイトファイルを残してしまうことがあります。また、ファイルの作成からデータ書き込みまでの時間が十分に長い場合、プログラムがコンテンツを書き込む前に、ユーザーがファイルのサイズがゼロであることに気づくこともあります。
ゼロバイトのファイルであっても、すべてのファイルにはファイルシステムのメタデータが含まれているため、ストレージ領域が必要です。ファイルシステムは、すべてのファイルに最小サイズの領域を割り当てる場合があります。このようなファイルシステムのパラメータは、などのオペレーティングシステムのユーティリティを介して検出できますstat。[ 2 ] [ 3 ]このサイズは通常4096バイトです。
ファイル形式によっては、メタデータ(ファイルシステムのメタデータとは別)が含まれている場合があります。この場合、コンテンツを含まないファイルでもサイズがゼロにならないことがあります。例えば、テキストを含まないワープロ文書、 0×0の画像、または再生時間がゼロの音声サンプルにはメタデータが含まれている場合があり、その場合、ファイルのサイズはゼロにならない可能性があります。一方、メタデータを含まないファイル形式もあります。例えば、ASCIIテキストファイルにはメタデータがないため、コンテンツを含まないファイルのサイズはゼロになります。しかし、一部のテキストファイル形式には、エンコーディングを記述するバイトオーダーマークヘッダーが含まれているため、コンテンツを含まないファイルでもサイズがゼロにならない場合があります。
ゼロバイトファイルは、意図的に使用されることがあります。例えば、ユーザーが空のディレクトリ内に「documents-moved-to-partition-D」という名前のゼロバイトファイルを見つけた場合、そのディレクトリにあったファイルはパーティションDにあると認識できます。また、一部のツール(バックアップやバージョン管理ソフトウェアなど)は空のディレクトリを無視するため、ディレクトリが空でないことを確認するためにゼロバイトファイルが追加されることもあります。
特定の名前のファイルが存在するか否かによって、プログラムの制御フローを制御できます。例えば、次のようになります。
IF EXIST C:\NOTHING.TXT EXIT IF NOT EXIST C:\NOTHING.TXT GOTO START : START REM ゼロ長のファイル C : \ >type null>nothing.txtを作成します: EXIT