Pagina inicial » como » Como o tamanho de um arquivo pode ser zero?

    Como o tamanho de um arquivo pode ser zero?

    Todos nós ocasionalmente nos deparamos com uma 'situação' em nossos computadores que nos deixa completamente desconcertados, como um arquivo com tamanho zero, mas como isso é possível? O post de perguntas e respostas do SuperUser de hoje tem as respostas para a pergunta de um leitor confuso.

    A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..

    A questão

    O leitor SuperUser Eugene S quer saber como o tamanho de um arquivo pode ser zero:

    Isso é algo que eu encontrei e não consegui pensar em uma explicação adequada. Se eu criar um vazio arquivo * .txt no meu computador e, em seguida, olhar para o seu tamanho, mostra um tamanho de zero. Como isso é possível? Quero dizer, mesmo se o arquivo em si estiver vazio, ele ainda deve ter algum tamanho (mesmo que seja apenas para armazenar seu próprio nome). Como isso pode ser explicado?

    Como é possível que um arquivo tenha um tamanho de zero?

    A resposta

    Os colaboradores do SuperUser, David Schwartz e Cort Ammon, têm a resposta para nós. Primeiro, David Schwartz:

    É possível porque realmente não há arquivo. Há apenas uma entrada de diretório com um nome e proprietário. A entrada de diretório é logicamente distinta do arquivo. Por exemplo, o mesmo arquivo pode ter mais de um nome em mais de um diretório.

    Infelizmente, o termo arquivo nem sempre é usado para significar exatamente a mesma coisa. Mas a lógica do tamanho do arquivo vem do modelo em que uma entrada de diretório anexa um arquivo a um diretório, em seguida, os nomes de arquivos e os metadados relacionados são armazenados no diretório.

    Seguido pela resposta de Cort Ammon:

    O significado semântico do tamanho do arquivo é diferente daquele que você está usando.

    Existem muitos tamanhos de arquivos que são significativos. O mais comum, e o que você está vendo aqui, é o número de bytes no arquivo. Se o arquivo for um arquivo de texto vazio, ele pode conter zero bytes. Esse número é importante para os programadores, pois geralmente precisamos abrir um arquivo, ler todos os dados e fechá-lo. Precisamos saber quantos bytes de dados estarão no arquivo para que possamos planejar com antecedência.

    Outro significado surge da maneira como a maioria dos sistemas de arquivos armazena dados. A maioria dos sistemas de arquivos armazena dados em blocos. Por exemplo, o sistema de arquivos pode armazenar dados em blocos de 64 kB, o que significa que ele nunca alocará qualquer coisa que não seja um múltiplo par de 64 kB. Isso parece ineficiente, mas pode tornar a contabilidade um pouco mais simples e, muitas vezes, mais simples significa mais rápido.

    Um terceiro significado, que você está puxando, seria o número real de bits necessários no disco rígido para descrever a presença de um arquivo. Isso inclui informações que normalmente são armazenadas separadamente do arquivo. Por exemplo, no Linux, o conceito do nome do arquivo é armazenado no inode para o diretório que contém o arquivo. [Com base na entrada de outros comentários, isso é (tecnicamente) armazenado nos dados do diretório. Quando escrevi isso, estava pensando no caso do diretório pequeno. Dados menores que 156 bytes podem ser armazenados diretamente no inode.] Este não é um significado comumente usado porque é terrivelmente difícil de determinar sem conhecer o funcionamento interno tremendamente profundo de seu sistema de arquivos (como a contabilização do espaço necessário para armazenar todas as permissões no arquivo). No entanto, se você tiver um disco rígido de 1.000.000 bytes e desejar saber qual o tamanho de um arquivo que pode caber nesse disco rígido, esse será um significado muito importante para você.!


    Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.