Como Puedo Copiar Archivo

Iniciado por I.Q.H, 26 Febrero 2016, 03:47 AM

0 Miembros y 1 Visitante están viendo este tema.

I.Q.H

Lo que quiero es al ejecutar el programa o el .exe busque el archivo con el nombre señalado en el disco C y lo pegue a un destino ya marcado

Alguien Que Pueda decirme el código para esto porque soy un nobb en c++

POR FAVOR Si no es mucho pedir ;-) ;-)

ivancea96

3 posibilidades básicas:
-Abrir el archivo para lectura, y el nuevo archivo para escritura, y según lees de un lado, escribes en el otro.
-Utilizar la función system("copy ... ...") para utilizar el comando copy.
-Utilizar la API del sistema operativo.

MAFUS

Usa la función rename de stdio.h

Su firma es:
int rename(const char *viejo, const char *nuevo);
siendo viejo la cadena con el nombre antiguo del archivo
y nuevo la cadena con el nombre nuevo del archivo.
Retorna 0 si ha tenido éxito y cualquier otro valor, que no sea 0 si falla. En caso de fallo el archivo sigue con el nombre antiguo.

http://c.conclase.net/librerias/?ansifun=rename

BlackM4ster

#3
Cita de: MAFUS en 26 Febrero 2016, 23:15 PM
Usa la función rename de stdio.h

Su firma es:
int rename(const char *viejo, const char *nuevo);
siendo viejo la cadena con el nombre antiguo del archivo
y nuevo la cadena con el nombre nuevo del archivo.
Retorna 0 si ha tenido éxito y cualquier otro valor, que no sea 0 si falla. En caso de fallo el archivo sigue con el nombre antiguo.

http://c.conclase.net/librerias/?ansifun=rename

Rename renombra, no copia. El hecho de que en ciertas circunstancias copie el archivo es un "bug" ya que la implementacion de esta función depende del SO. Es una mala práctica usarlo con este fin.
Citar
If oldname and newname specify different paths and this is supported by the system, the file is moved to the new location.
http://www.cplusplus.com/reference/cstdio/rename/
Me quedo con la respuesta de IvanCea de leer y escribir o usar la API del SO.
Saludos
- Pásate por mi web -
https://codeisc.com

ThunderCls

-Para Windows te recomiendo usar API's, en este caso: CopyFile/CopyFileEx
-Para usar con ANSI C++ tienes que abrir el fichero, leerlo en memoria y luego escribirlo en el lugar de destino, en este caso podrias usar las funciones: fopen/fread/fwrite/fclose

Saludos
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

MAFUS

BlackM4sater, tienes razón. Empecé a pensar en el problema, luego pensé en como sería sin tuviera que moverlo a otro sitio y se me fue el santo al cielo.
Usar la API es una muy buena solución pero nada portable, amenoa que se usen las clausulas del preprocesador.

I.Q.H

Entonce Ustedes Me dicen Que usando (API) ???

ivancea96

Si vas a usar API, la de Windows sería: https://msdn.microsoft.com/es-es/library/windows/desktop/aa363851%28v=vs.85%29.aspx. Muy simple.

Si lo haces letyendo y escribiendo, que te permite mayor portabilidad, usando ifstream y ofstream es una fácil solución.

I.Q.H

Lo Que en realidad pido es el código del programa   :huh: :huh: :huh: :huh:

engel lex

no se hacen tareas, tema cerrado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.