Data incorreta criada para arquivos no Windows ao copiar arquivos, se o arquivo já existir


9

Estou tendo um problema ao copiar arquivos (ou criar novos arquivos) no Windows 7. Se eu copiar um arquivo, espero que a data criada esteja correta, mas às vezes não. Geralmente funciona, mas aqui está um exemplo de quando não funciona:

Tenho duas pastas na área de trabalho, pasta 1 e pasta 2. Crie um novo arquivo de texto na pasta 1 chamado 852pm (ou sempre que ele foi criado). Copio o arquivo para a pasta 2. O arquivo copiado tem a data de criação correta. Excluo o arquivo copiado, aguarde um minuto e copio-o novamente. A data de criação está errada. A data de criação é do arquivo excluído.

Tentei esvaziar a lixeira primeiro, mas isso não funciona. E, às vezes, a criação de um novo arquivo com o mesmo nome mostra a antiga data de criação (e com uma nova data modificada).

Por que isso acontece? Como posso fazer com que novos arquivos nessa situação mostrem as datas de criação corretas?

Respostas:


11

Túnel de arquivo

Citando o artigo oficial da KB Windows NT contém recursos de encapsulamento do sistema de arquivos :

Isso ocorre após a exclusão ou renomeação e reintrodução de uma nova entrada de diretório com essa meta-informação (se ocorrer uma criação ou renomeação para fazer com que um arquivo com esse nome apareça novamente em um curto período de tempo).

A idéia é imitar o comportamento que os programas do MS-DOS esperam quando usam o método de salvaguarda seguro. Eles copiam os dados modificados para um arquivo temporário, excluem o original e renomeiam o temporário para o original. Este deve parecer o arquivo original quando concluído. O Windows executa o encapsulamento nos sistemas de arquivos FAT e NTFS para garantir que nomes de arquivos longos / curtos sejam mantidos quando aplicativos de 16 bits executam essa operação de salvaguarda segura.

O artigo também explica como aumentar o tempo de cache ou desativar completamente os recursos de encapsulamento.

Desativar encapsulamento de arquivo

  1. Pressione Win+ R, digite regedite clique em OK .

  2. Navegue para a seguinte chave do Registro:

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem
    
  3. Clique com o botão direito do mouse em uma área vazia no painel direito e selecione Novo> Valor DWORD (32 bits) .

  4. Nomeie o novo valor MaximumTunnelEntries.
    Verifique se está definido como 0: isso significa que nenhuma entrada de túnel será criada.

Informação adicional

O nome "tunelamento" vem da mecânica quântica (muito legal):

O desenvolvedor responsável pela implementação do encapsulamento no Windows 95 se empolgou com a analogia da mecânica quântica: os fragmentos de informações sobre arquivos excluídos ou renomeados recentemente são mantidos em estruturas de dados chamadas "quarks".

Fonte: A história apócrifa do encapsulamento do sistema de arquivos

Leitura adicional


0

Você pode atualizar o tempo de criação com este comando manualmente:

powershell (ls YourFile.txt).CreationTime = Get-Date

... e o mesmo em um arquivo em lotes:

call powershell "(ls YourFile.txt).CreationTime = Get-Date"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.