Rápida e suja método para copiar arquivos em C ++

Há uma maneira rápida e suja você pode copiar um arquivo, e você pode usar isso para também mover, excluir e renomear arquivos. No entanto, este método não é absolutamente portátil: com efeito, se você fizer isso no Windows, por exemplo, você não será capaz de executar o mesmo aplicativo em Unix, e vice-versa. Ou seja, você tem que fazer uma versão para o sistema operacional que você está usando.

Agora, se você estiver familiarizado com o DOS (lembra disso?) Ou o shell do Unix, você pode executar todos os comandos DOS ou Unix-shell usando a sistema função. Se você usar o Dev-C ++, você já viu o sistema funcionar muitas vezes:

system ( "PAUSE") -

Isso executa o DOS pausa comando, que imprime a mensagem

pressione qualquer tecla para continuar # x2026-

e espera que você pressione a qualquer tecla (ou qualquer outra tecla para que o assunto). Porque o sistema função pode executar qualquer comando DOS ou shell, você pode usá-lo para chamar o comando de cópia DOS, como este:

system ( "copy c: Abc.txt c: def.txt") -

Note que você tem que usar a barra invertida, não uma frente slash- DOS realmente não gosta de barras. Para tornar o comando DOS-friendly, use duas barras invertidas dentro da cadeia.

Quando você usa esse método, você pode correr em algumas situações estranhas. Por exemplo, se você escrever um aplicativo que chama sistema e você está planejando para executá-lo sob a Cygwin ambiente no Windows, você pode usar o estilo Unix cp comando em vez do DOS cópia comando. O comando estranho resultante parece com isso:

system ( "cp c: Abc.txt c: def.txt") -

Mas você só pode usar este comando sob a Cygwin meio Ambiente. Caso contrário, ele dá-lhe uma mensagem de erro irritado:

'Cp' não é reconhecido como um comando interno ou externo, operável # X00AD-programa ou arquivo em lotes.

Moral: Você tem que ter certeza que tudo o que vos mando chamar o sistema função realmente existe no ambiente a partir do qual você emitir a chamada.

menu