Método sucio-rápida y para copiar archivos en c ++
Hay una manera rápida y sucia puede copiar un archivo, y usted puede usar esto para moverse también, borrar y renombrar archivos. Sin embargo, este método no es absolutamente portátil: en efecto, si usted hace esto en Windows, por ejemplo, usted no será capaz de ejecutar la misma aplicación en Unix, y viceversa. Es decir, usted tiene que hacer una versión para el sistema operativo que esté utilizando.
Ahora, si usted está familiarizado con DOS (recuerda eso?) O el shell de Unix, usted puede ejecutar cualquier comando DOS o Unix shell mediante el uso de la sistema función. Si utiliza Dev-C ++, que ya ha visto la sistema funcionar muchas veces:
del sistema ("PAUSE") -
Esto ejecuta el DOS pausa comando, que imprime el mensaje
Pulse cualquier tecla para continuar # x2026-
y espera a que pulse la tecla cualquiera (o cualquier otra tecla para el caso). Porque el sistema función puede ejecutar cualquier comando DOS o shell, puede utilizarlo para llamar al comando de copia de DOS, así:
del sistema ("copy c: abc.txt c: def.txt") -
Tenga en cuenta que usted tiene que utilizar la barra invertida, no un delantero roza DOS realmente no le gusta barras inclinadas. Para hacer que el comando DOS ambiente, usar dos barras invertidas dentro de la cadena.
Cuando se utiliza este método, puede encontrarse con algunas situaciones extrañas. Por ejemplo, si usted escribe una aplicación que llama sistema y usted está pensando en ejecutar el programa bajo el Cygwin entorno en Windows, puede utilizar el estilo Unix cp comandos en lugar del DOS copia comandos. El comando raro resultante se parece a esto:
del sistema ("cp c: abc.txt c: def.txt") -
Pero sólo se puede utilizar este comando en el marco del Cygwin ambiente. De lo contrario, le da un mensaje de error malhumorado:
'cp' no se reconoce como un comando interno o externo, operable # x00AD-programa o archivo por lotes.
Moral: Usted tiene que asegurarse de que el comando que llama en el sistema función realmente existe en el entorno desde el que se emite la llamada.