Vídeo: Programar em C - Manipulação de Arquivos txt em C / Escrever Dados - Aula 81 2024
Ah, copiando um arquivo - algo tão simples, acontece o tempo todo. Copie este arquivo lá; copie esse arquivo aqui. Mas o que ocorre exatamente quando você copia um arquivo? Você realmente cria um 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 todos os bytes do primeiro arquivo e escrevê-lo para o segundo. Big-time yuck.
Mas para piorar as coisas, copiar um arquivo significa que você deve ter certeza de que você o copia exatamente o mesmo, que você não coloque inadvertidamente um extra 0 ou dois no final do arquivo, ou um retorno de carro extra ou alimentação de linha no final do arquivo (o que pode acontecer quando você copia um arquivo de texto).
Quando tudo é feito, os dois arquivos devem ser idênticos - não apenas conter a mesma informação , mas também ser o mesmo tamanho .
E, além de tudo isso, a maioria das rotinas de cópia boas fazem ainda mais! Eles dão ao novo arquivo uma data que corresponde à data do arquivo original, e eles definirão todos os atributos - incluindo, digamos, somente leitura se o original for um arquivo somente leitura. (Se o arquivo for somente leitura, talvez você não possa copiá-lo em primeiro lugar …)
De repente, copiar um arquivo não soa tão fácil depois de tudo!
Se você estiver programando no Windows, você está com sorte! Enquanto você não estiver usando o antigo Windows 3. 1, você recebe uma função CopyFile! Para se preparar para usá-lo, você inclui a linha #incluindo em seu aplicativo. Então aqui está tudo o que você precisa fazer:
CopyFile ("c: / dog. Txt", "c: / dog2. Txt", TRUE);
Este exemplar de c: / dog. txt para c: / dog2. TXT. Mas observe o parâmetro final: é a palavra TRUE em todas as letras maiúsculas. O que é isso? Essa é uma macro de préprocessador definida em algum lugar nas curvas dos arquivos de cabeçalho do Windows.
Você deve usar TRUE ou FALSE ao chamar qualquer uma das funções do Windows. Isso ocorreu nos velhos tempos de C, quando as versões iniciais do Windows foram inventadas, nenhum tipo de bool existia. Essas pessoas engenhosas do final do século 20 tiveram que definir seus próprios TRUE e FALSE como números inteiros (normalmente 1 ou 0, respectivamente, ou 0 e 1, respectivamente).
E, a propósito, esse parâmetro final no CopyFile diz à função o que fazer se o arquivo que você está copiando já existe: TRUE significa não substituir o arquivo existente; apenas aborte. FALSO significa substituí-lo.