SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: loino en Martes 15 de Julio de 2008, 06:08

Título: Mover archivo
Publicado por: loino en Martes 15 de Julio de 2008, 06:08
Hola.

Como puedo mover o copiar un archivo con funciones, he investigado y no encuentro nada, solo rename y remove pero no me sirve.

Gracias.
Título: Re: Mover archivo
Publicado por: ProfesorX en Martes 15 de Julio de 2008, 19:13
Si estas trabajando bajo windows, para copiar puedes utilizar la funcion CopyFile que esta definida dentro de windows.h:

http://msdn.microsoft.com/en-us/library/aa363851(VS.85).aspx

La operacion mover la puedes implementar copiando primero, y ya que lo hayas copiado, borras el original.

Bajo otro sistema, debes implementarlo manualmente, o sea, para copiar abres 2 archivos, uno para lectura, y otro pra escitura, y copias byte por byte el contenido del primero en el segundo. Mover es igual que arriba (copiar y luego borrar el original.

Saludos :hola:
Título: Re: Mover archivo
Publicado por: Eternal Idol en Martes 15 de Julio de 2008, 19:22
No hace falta hacer eso para mover un archivo, usa MoveFile (http://msdn.microsoft.com/en-us/library/aa365239(VS.85).aspx).
Título: Re: Mover archivo
Publicado por: shakka en Martes 15 de Julio de 2008, 20:52
Si no trabajas necesariamente sobre Windows, con rename (porque dices que no te sirve?).

Código: C
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. char old_name[] ="/ruta/origen/file_a.txt";
  7. char new_name[] ="/ruta/destino/file_b.txt";
  8.  
  9.   rename(old_name,new_name);
  10.   remove(old_name);
  11.  
  12. return 0;
  13. }
  14.  
Título: Re: Mover archivo
Publicado por: lostshell en Martes 15 de Julio de 2008, 23:07
otra opciones es hacer con system

en windows:
Código: Text
  1.  
  2. system( "move oldfile newfile" );
  3.  
  4.  
en linux
Código: Text
  1.  
  2. system( "mv oldfile newfile");
  3.  
  4.