2010-06-30 13 views
17

Uso il file system boost per sostituire le funzioni di Windows C++ come CopyFile e MoveFile per ottenere una sorta di portabilità tra Windows e Linux. Sto usando copy_file ma non sono stato in grado di trovare nulla che sposta i file come una funzione 'move_file'. Boost ha una funzione di file di movimento?Perché non c'è boost :: filesystem :: move_file?

Preferisco molto usare boost, ma i suggerimenti alternativi sono i benvenuti.

risposta

34

Si chiama rename, vedere the manual. Come le funzioni del sistema operativo corrispondenti, questo potrebbe o potrebbe non funzionare se i percorsi di origine e destinazione si trovano su file system diversi. Se non funziona, utilizzare un'operazione di copia seguita da un'operazione di eliminazione.

+3

Confesso che leggendo il manuale e poi a sua volta leggendo la pagina ISO C a cui si riferisce il manuale, non vedo nulla di esplicitamente affermando che la destinazione può essere un file in un'altra directory, al fine di spostare il file da una directory a un'altra. Una lettura attenta implica che ciò sia possibile, ma penso che la documentazione di boost sarebbe molto più utile e più chiara se affermasse esplicitamente questa possibilità. Boost documentation ticket: https://svn.boost.org/trac/boost/ticket/9643 – legalize

-6
void add_time(ptime& gen_time, int seconds) { 
    boost::posix_time::millisec_posix_time_system_config::time_duration_type time_elapse(0, 0, seconds); 
    //time_elapse = p2 - p1; 
    gen_time = gen_time + time_elapse; 
} 
+16

Forse questa è la risposta corretta, ma per qualche altra domanda. – Dialecticus

Problemi correlati