Data errada criada para arquivos no Windows ao copiar arquivos, se o arquivo já existia

8

Estou com 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. Normalmente funciona, mas aqui está um exemplo de quando não funciona:

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

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

Por que isso acontece? Como posso criar novos arquivos nessa situação para mostrar as datas corretas de criação?

    
por theMaxx 11.02.2014 / 21:21

2 respostas

10

Túnel de arquivos

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

This occurs after deletion or renaming and re-introducing a new directory entry with that meta-info (if a create or rename occurs to cause a file of that name to appear again in a short period of time).

The idea is to mimic the behavior MS-DOS programs expect when they use the safe save method. They copy the modified data to a temporary file, delete the original and rename the temporary to the original. This should seem to be the original file when complete. Windows performs tunneling on both FAT and NTFS file systems to ensure long/short file names are retained when 16-bit applications perform this safe save operation.

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

Desativar o túnel de arquivos

  1. Pressione Win + R , digite regedit e clique em OK .

  2. Navegue até a seguinte chave de 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ções adicionais

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

The developer who was responsible for implementing tunneling on Windows 95 got kind of carried away with the quantum mechanics analogy: The fragments of information about recently-deleted or recently-renamed files are kept in data structures called "quarks"."

Source: The apocryphal history of file system tunnelling

Leitura adicional

por 11.02.2014 / 21:36
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"
    
por 09.10.2018 / 01:58

Tags