2010-06-30 16 views
17

Estoy usando el sistema de archivos boost para reemplazar las funciones de Windows C++ como CopyFile y MoveFile para obtener algún tipo de portabilidad entre Windows y Linux. Estoy usando copy_file pero no he podido encontrar nada que mueva archivos como una función 'move_file'. ¿El impulso tiene una función de archivo de movimiento?¿Por qué no hay boost :: filesystem :: move_file?

Preferiría mucho usar el impulso, pero se aceptan sugerencias alternativas.

Respuesta

34

Se llama rename, ver the manual. Al igual que las funciones correspondientes del sistema operativo, esto podría funcionar o no si las rutas de origen y destino están en sistemas de archivos diferentes. Si no funciona, utilice una operación de copia seguida de una operación de eliminación.

+3

Confieso que leer el manual y luego en la lectura de la página ISO C que hace referencia el manual de su parte, no veo nada que indica explícitamente que el destino puede ser un archivo en otro directorio con el fin de mover el archivo de un directorio a otro. Una lectura cuidadosa implica que esto es posible, pero creo que la documentación de impulso sería mucho más útil y más clara si estableciera esta posibilidad explícitamente. Boost ticket de documentación: 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

Quizás esta es la respuesta correcta, pero para alguna otra pregunta. – Dialecticus

Cuestiones relacionadas