Ir ao conteúdo

Como copiar pastas ou diretórios para outra pasta


gilsonlongo

Posts recomendados

Postado

Olá,

Estou pesquisando na linguagem C o procedimento para "copiar pastas ou diretórios e seus arquivos para outra pasta (backup)".

Tenho usado a função - fopen - readdir - opendir.

FILE *fp_out;
char input_name[15], output_name[15];
output_name = "c:\\teste";

fp_out = fopen(output_name, "w");
if (fp_out == NULL)
{
fclose(fp_out);
printf("Problema c/ Diretório ...fp_out...:%x \n", fp_out);
}
else
...

E aí não vai adiante, fopen retorna = NULL.

Desde já agradeço a colaboração dos colegas...

Postado

Em bibliotecas padrão do C, acredito que não tenha uma função que faça isso diretamente.

Primeiro, terá de criar uma função pro copiar um arquivo. Abra o arquivo de origem em modo leitura, o arquivo destino em modo escrita e faça a cópia do conteúdo de um pro outro, fechando-os no final.

Próximo passo, será a rotina pra ler os arquivos contidos no diretório a ser copiado, passando cada um deles pra função de copiar. Caso exista um sub-diretório, precisará criar o mesmo no destino, se quiser fazer um backup autêntico.

Postado

Olá ScreenBlack,

Creio que sua visão é importante, pois tenho uma rotina que copia os arquivo do diretório raiz, mas não seus sub-diretórios e arquivos...

Vou tentar aqui criar um loop que verifica cada pasta existente em \teste e cria ela no \backup e copia os arquivos e assim por diante, para ter uma cópia exata da pasta original.

Valeu, obrigado.

gilsonlongo

<Caso exista um sub-diretório, precisará criar o mesmo no destino, se quiser fazer um backup autêntico.>

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...