Como copiar arquivos em C ++

Ah, copiando um arquivo - uma coisa tão simples, isso acontece o tempo todo. Copie este arquivo lá- copie esse arquivo aqui. Mas o que exatamente ocorre quando você copiar um arquivo? Você realmente criar uma novo arquivo, e preenchê-lo com o mesmo conteúdo que o arquivo original. E como você faz isso?

Bem, parece que você tem que ler cada byte do primeiro arquivo, e escrevê-lo para o segundo. eca-time grande.

Mas, para piorar a situação, copiar um arquivo significa que você tem que ter certeza que você copiá-lo exatamente o mesmo, que você não possa alinhavar um extra 0 ou dois no final do arquivo, ou um retorno de carro extra ou avanço de linha o fim do arquivo (que pode acontecer quando você copiar um arquivo de texto).

Quando tudo estiver pronto, os dois arquivos devem ser idênticos - não só conter a mesmas informações, mas também ser a mesmo tamanho.

E ainda por cima de tudo isso, a maioria das boas rotinas de cópia fazer ainda mais! Eles dão o novo arquivo de uma data que coincide com a data do arquivo original, e eles vão definir todos os atributos - incluindo, por exemplo, somente leitura se o original é um arquivo somente leitura. (Se o arquivo é somente leitura, então talvez você não deve ser capaz de copiá-lo em primeiro lugar.. ..)

De repente, a cópia de um arquivo não parecer tão fácil depois de tudo!

Se você está programando no Windows, você está na sorte! Contanto que você não está usando o antigo Windows 3.1, você recebe um CopyFile função! Para se preparar para usá-lo, você incluir a linha #incluir na sua aplicação. Então aqui é tudo que você tem que fazer:

CopyFile ( "c: /dog.txt", "c: /dog2.txt", TRUE) -

Isso copia de C: /dog.txt para C: /dog2.txt. Mas observe o parâmetro final: É a palavra VERDADE em todas as capitais. O que é isso? Essa é uma macro pré-processador definido em algum lugar nas entranhas dos arquivos de cabeçalho do Windows.

Você tem que usar tanto VERDADE ou FALSO ao chamar qualquer uma das funções do Windows. Isso porque nos velhos tempos de C, quando as primeiras versões do Windows foram inventados, não bool Tipo existiu. Essas pessoas engenhosos do final do século 20 teve de definir o seu próprio VERDADE e FALSO como números inteiros (geralmente ou 1 e 0, respectivamente, e 0 ou 1, respectivamente).

E, a propósito, que o parâmetro final em CopyFile conta à função o que fazer se o arquivo que você está copiando já que existe: VERDADE meios não substituir o file- existente apenas abortar. FALSO significa substituí-lo.

menu