Corrigir perda de precisão de subsegundos no horário de modificação em FAT32 no Windows 11
🔍 WiseChecker

Corrigir perda de precisão de subsegundos no horário de modificação em FAT32 no Windows 11

Ao salvar arquivos em uma unidade FAT32 no Windows 11, o horário de modificação pode perder a precisão de subsegundos. Isso significa que o timestamp mostra apenas segundos inteiros, sem frações como 10:15:30.123. O problema ocorre porque o sistema de arquivos FAT32 não suporta nativamente timestamps de alta precisão, e o Windows 11 aplica um arredondamento padrão que descarta os milissegundos. Este artigo explica por que o Windows 11 descarta a precisão de subsegundos no FAT32 e fornece dois métodos para preservar ou restaurar horários de modificação precisos.

Principais conclusões: Restaurar timestamps de subsegundos em unidades FAT32

  • File Explorer > Propriedades > Versões anteriores: Não ajuda porque o FAT32 não possui cópias de sombra de volume; os dados de subsegundos são perdidos no momento da gravação.
  • Prompt de comando com fsutil: Consulta os metadados baseados em NTFS do arquivo se ele foi criado originalmente no NTFS, mas o FAT32 armazena apenas valores de segundos inteiros.
  • Converter FAT32 para NTFS usando convert.exe: A única correção permanente para preservar a precisão de subsegundos na própria unidade.

ADVERTISEMENT

Por que o Windows 11 perde a precisão de subsegundos nos horários de modificação de arquivos FAT32

FAT32 é um sistema de arquivos legado projetado na década de 1990. Seu formato em disco armazena timestamps com resolução de dois segundos para o horário de modificação e um segundo para os horários de criação e acesso. O sistema de arquivos não possui nenhum campo para milissegundos ou frações de segundo. Quando o Windows 11 grava um timestamp de arquivo em um volume FAT32, ele arredonda o valor para o segundo inteiro mais próximo e descarta o componente de subsegundo.

O driver do sistema de arquivos do Windows 11 (fastfat.sys) lida com esse arredondamento durante a operação de gravação. Mesmo que um aplicativo passe um timestamp de alta precisão através da API SetFileTime, o driver trunca a parte de subsegundo antes de armazená-la no disco. Quando você lê o horário de modificação do arquivo posteriormente, o sistema operacional retorna apenas o valor do segundo inteiro. Esse comportamento é proposital e se aplica a todos os volumes FAT32, independentemente do meio de armazenamento, incluindo unidades flash USB, cartões SD e discos rígidos externos mais antigos.

O problema se torna perceptível quando você copia arquivos de uma unidade NTFS para uma unidade FAT32. O NTFS suporta resolução de timestamp de 100 nanossegundos. Após a cópia, o horário de modificação no destino FAT32 perde sua precisão de subsegundos. Isso pode causar problemas para aplicativos que dependem de timestamps precisos, como software de backup, sistemas de controle de versão ou ferramentas de codificação de mídia que rastreiam alterações de arquivos por milissegundo.

Passos para preservar horários de modificação com subsegundos no FAT32 no Windows 11

Como o FAT32 não pode armazenar dados de subsegundos nativamente, a única correção confiável é converter a unidade para um sistema de arquivos que suporte timestamps de alta precisão. Os métodos a seguir cobrem tanto soluções temporárias quanto a conversão permanente para NTFS.

Método 1: Converter a unidade FAT32 para NTFS usando o Prompt de Comando

  1. Abra o Prompt de Comando como Administrador
    Pressione a tecla Windows, digite cmd, clique com o botão direito em Prompt de Comando nos resultados da pesquisa e selecione Executar como administrador. Clique em Sim na solicitação de Controle de Conta de Usuário.
  2. Identifique a letra da unidade do volume FAT32
    Na janela do Prompt de Comando, digite wmic logicaldisk where filesystem=”FAT32″ get deviceid, volumename e pressione Enter. Anote a letra da unidade, como D: ou E:.
  3. Execute o comando convert
    Digite convert D: /fs:ntfs e pressione Enter. Substitua D: pela letra da unidade real. O processo de conversão não exclui arquivos na unidade. Se a unidade tiver um rótulo de volume, você pode ser solicitado a inseri-lo.
  4. Aguarde a conclusão da conversão
    O processo pode levar vários minutos, dependendo do tamanho da unidade e da quantidade de arquivos. Não feche a janela do Prompt de Comando nem desconecte a unidade durante a conversão. Quando concluído, a mensagem Conversão concluída aparece.
  5. Verifique o novo sistema de arquivos
    Abra o File Explorer, clique com o botão direito na unidade e selecione Propriedades. A linha Sistema de arquivos mostra NTFS em vez de FAT32.

Método 2: Usar uma ferramenta de terceiros para preservar timestamps durante operações de cópia

Se você não puder converter a unidade para NTFS, pode usar uma ferramenta como robocopy com as flags /COPYALL e /DCOPY:T para copiar arquivos preservando os timestamps NTFS. No entanto, isso não restaura a precisão de subsegundos na própria unidade FAT32. Apenas mantém os dados originais do timestamp no log da operação de cópia. Para verificar o timestamp original, execute:

  1. Abra o Prompt de Comando como Administrador
    Siga o passo 1 do Método 1.
  2. Use robocopy para copiar arquivos com preservação total de timestamps
    Digite robocopy C:\Origem D:\Destino /E /COPYALL /DCOPY:T /R:0 /W:0 e pressione Enter. Substitua C:\Origem pelo caminho da pasta de origem e D:\Destino pelo caminho de destino FAT32. A flag /COPYALL copia todas as informações do arquivo, incluindo timestamps, mas o destino FAT32 ainda armazena apenas valores de segundos inteiros.
  3. Verifique o log do robocopy para timestamps originais
    Adicione a flag /LOG+:copy.log para salvar os detalhes da operação em um arquivo. Abra o log no Bloco de Notas para ver os timestamps de origem com precisão total. Isso não altera o armazenamento FAT32, mas fornece uma referência.

ADVERTISEMENT

Problemas comuns e limitações quando a precisão de subsegundos é perdida no FAT32

O File Explorer do Windows não mostra milissegundos mesmo no NTFS

Por padrão, o File Explorer exibe timestamps com precisão de segundos. Para ver valores de subsegundos, você deve usar um comando do PowerShell. Abra o PowerShell, navegue até a pasta do arquivo e execute Get-ChildItem | Format-Table Name, LastWriteTime. A saída inclui milissegundos para arquivos em volumes NTFS. Este comando também funciona no FAT32, mas o valor do milissegundo sempre mostra .000 porque o sistema de arquivos não armazena esses dados.

Copiar arquivos de volta para NTFS não restaura timestamps originais de subsegundos

Ao copiar um arquivo do FAT32 de volta para uma unidade NTFS, o Windows 11 usa o timestamp FAT32 como origem. Os dados de subsegundos que existiam antes da primeira cópia são perdidos permanentemente. A única maneira de preservar o timestamp original de alta precisão é manter o arquivo na unidade de origem NTFS e nunca copiá-lo para FAT32, ou converter a unidade FAT32 para NTFS antes de gravar qualquer arquivo.

Alguns aplicativos gravam seus próprios metadados de timestamp

Certos aplicativos, como câmeras digitais e editores de vídeo, armazenam o timestamp original nos metadados internos do arquivo, não no horário de modificação do sistema de arquivos. Por exemplo, uma foto JPEG pode conter dados EXIF com o horário da captura, incluindo frações de segundo. Nesse caso, o timestamp do sistema de arquivos é irrelevante, e você pode recuperar a precisão de subsegundos dos metadados usando ferramentas como exiftool. Essa solução alternativa se aplica apenas a arquivos que incorporam seus próprios timestamps.

Resolução de timestamp FAT32 vs resolução de timestamp NTFS

Item FAT32 NTFS
Resolução do horário de modificação 2 segundos 100 nanossegundos
Resolução do horário de criação 1 segundo 100 nanossegundos
Resolução do horário de acesso 1 dia 1 hora (padrão)
Armazenamento de subsegundos Não suportado Suportado
Tamanho máximo do volume 2 TB 256 TB
Tamanho máximo do arquivo 4 GB 16 EB

A tabela mostra que o FAT32 não tem capacidade de armazenar dados de subsegundos. O NTFS oferece resolução de 100 nanossegundos para horários de modificação e criação. Se seu fluxo de trabalho depende de precisão de nível de milissegundo, o NTFS é o único sistema de arquivos nativo do Windows que atende a esse requisito. O exFAT, outro sistema de arquivos comum para unidades removíveis, também suporta timestamps de subsegundos com resolução de 10 milissegundos, mas não é discutido neste artigo porque a pergunta é especificamente sobre FAT32.

Agora você pode converter qualquer unidade FAT32 para NTFS usando o comando convert ou usar logs do robocopy para rastrear timestamps originais. Para arquivos que contêm metadados incorporados, use uma ferramenta de extração de metadados para recuperar a precisão de subsegundos. Se você precisar manter timestamps de alta precisão com frequência, considere reformatar novas unidades como NTFS ou exFAT antes de copiar arquivos. Isso evita a perda de dados desde o início.

ADVERTISEMENT