Domanda

Ho bisogno di modificare il 'creato' (se esiste), 'modificato' e 'letta' timestamp di un file. Idealmente questo sarebbe una soluzione indipendente dalla piattaforma.

Ho guardato intorno alle librerie Boost, ma non riesco a vedere nulla di rilevante. Il più vicino che ho trovato per qualcosa di rilevante è questo per Windows.

chiunque aiutare

Can? Grazie.

È stato utile?

Soluzione

Non ho mai usato ma immagino che si sta cercando per le funzioni di attributo:
http: //www.boost .org / doc / librerie / 1_44_0 / librerie / filesystem / v2 / doc / reference.html # attributi funzioni

Ci sono anche funzioni per l'ultima modifica:

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);

Altri suggerimenti

Un'altra , frammento di codice leggermente più semplice per Windows .

Utilizza la utime funzione e utimbuf struct. Il metodo è disponibile in Windows, ma si chiama con una sottolineatura di primo piano come _utime .

Aggiornamento: utime consente solo di cambiare il accesso e modifica volte (via utimbuf di actime e campi modtime). Questo è più probabile, perché i file system molti stile Unix non registrano il creazione momento ovunque.

Non tutti i più diffusi supporto filesystem 'creato' e 'Accessed' timestamp: http: // it. wikipedia.org/wiki/Comparison_of_file_systems#Metadata

file system di Windows fanno, ma potrebbe non essere una buona idea di dipendere da loro adesso se avete bisogno di portabilità. Guardando a quel tavolo ottengo l'impressione che v'è una tendenza per aggiungere il supporto per le più recenti nel file system, però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top