Correção: FileInfo.Length retorna um tamanho desatualizado para um arquivo que ainda está sendo gravado no Windows
FileInfo guarda o tamanho em cache, a enumeração lê a entrada de diretório do NTFS, atualizada de forma preguiçosa, e o escritor ainda pode manter bytes nos próprios buffers. Use Refresh() ou, melhor ainda, leia o tamanho de um handle compartilhado com RandomAccess.GetLength.