Por que não consigo alterar a 'última hora de gravação' dos meus arquivos recém-criados?

Primeiro, estou usando a implementação do Visual Studio 2015 da biblioteca de sistema de arquivos do próximo padrão C ++ 17, que é baseado no Boost :: Filesystem.

Basicamente, o que estou tentando fazer é salvar o registro de data e hora de um arquivo (é a "última hora de gravação"), copiar o conteúdo desse arquivo em um arquivo morto, juntamente com o referido registro de data e hora, extrair o arquivo novamente e usar o registro de data e hora salvo para restaurar a correção correta. "última hora de gravação".

// Get the file's 'last write time' and convert it into a usable integer.
__int64 timestamp = chrono::time_point_cast<chrono::seconds>(fs::last_write_time(src)).time_since_epoch().count();

// ... (do a bunch of stuff in here)

//  Save the file
ofstream destfile(dest, ios::binary | ios::trunc);
destfile.write(ptr, size);

// Correct the file's 'last write time'
fs::last_w,rite_time(dest, chrono::time_point<chrono::system_clock>(chrono::seconds(timestamp)));

O problema é que o novo arquivo sempre termina com um carimbo de data e hora igual à hora em que foi criado (agora), como nunca chameilast_write_time() em absoluto.

Quando tento copiar o carimbo de data e hora de um arquivo existente para outro, ele funciona bem. Quando copio o carimbo de data e hora de um arquivo, usefs::copy para criar uma nova cópia desse arquivo e alterar imediatamente o carimbo de data e hora da cópia, também funciona bem. O código a seguir funciona corretamente:

// Get the file's 'last write time' and convert it into a usable integer.
__int64 timestamp = chrono::time_point_cast<chrono::seconds>(fs::last_write_time("test.txt")).time_since_epoch().count();
fs::copy("test.txt", "new.txt");
// Correct the file's 'last write time'
fs::last_write_time("new.txt", chrono::time_point<chrono::system_clock>(chrono::seconds(timestamp)));

Não tenho motivos para suspeitar que o armazenamento do carimbo de data e hora possa estar incorreto, mas não tenho outras idéias. O que pode estar causando isto?

questionAnswers(1)

yourAnswerToTheQuestion