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?

theMaxx
fonte

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

Edelwater
fonte
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"
bpelhos
fonte