Pergunta

Preciso modificar os registros de data e hora 'criados' (se existir), 'modificados' e 'acessados' de um arquivo. Idealmente, essa seria uma solução independente da plataforma.

Eu olhei em volta das bibliotecas de impulso, mas não consigo ver nada relevante. O mais próximo que encontrei para algo relevante é isto para Windows.

Alguém pode ajudar? Obrigado.

Foi útil?

Solução

Eu nunca os usei, mas acho que você está procurando as funções de atributo:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#attribute-functions

Também existem funções para a última modificação:

template <class Path> std::time_t last_write_time(const Path& p);
template <class Path> void last_write_time(const Path& p, const std::time_t new_time);

Outras dicas

Outro, snippet de código um pouco mais simples para Windows.

Use o utime função e utimbuf estrutura. O método está disponível no Windows, mas é nomeado com um sublinhado líder como _utime.

Atualizar: utime apenas permite que você mude o Acesso e modificação tempos (via utimbuf's actime e modtime Campos). Isso é mais provável porque muitos sistemas de arquivos no estilo Unix não registram o criação tempo em qualquer lugar.

Nem todos os sistemas de arquivos populares suportam 'criados' e 'acessados' registros de data e hora: http://en.wikipedia.org/wiki/comparison_of_file_systems#metadata

O Windows FileSystems o faz, mas pode não ser uma boa ideia depender deles agora, se você precisar de portabilidade. Olhando para essa mesa, tenho a impressão de que há uma tendência para adicionar suporte a eles em sistemas de arquivos mais recentes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top