Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Copia di file in C

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    14

    Copia di file in C

    Come posso scrivere un programma in C in modo che faccia semplicemente la copia di un file in un nuovo file!
    Utilizzo Microsoft VC++ 6.0 come ambiente di sviluppo.
    Ho provato con:

    int open(char *filename,int flag,int perms)
    int creat(char *filename, int perms)

    int read(int handle,char *buffer,unsigned lenght)
    int write(int handle,char *buffer,unsigned lenght)

    int close(int handle)

    dichiarati in:

    fcntl.h
    io.h

    Il problema è che copia il file sorgente, ma non tutti i byte!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173
    codice:
    #include <stdio.h>
    
    int copia_file( char *vecchio_file, char *nuovo_file);
    
    int main()
    {
       char source[80], destination[80];
    
       printf("\nInserire il file di origine: ");
       gets(source);
       printf("\nInserire il file di destinazione: ");
       gets(destination);
    
       if( copia_file(source, destination) == 0)
             printf("\nLa copia del file è riuscita correttamente!");
       else
             fprintf(stderr, "\nCopia del file non riuscita");
    
    }
    
    
    int copia_file(char *vecchio_file, char *nuovo_file)
    {
       FILE *fold, *fnew;
       int c;
    
       if((fold = fopen(vecchio_file, "rb")) == NULL)
       {
          fprintf(stderr, "\nErrore nell'apertura del file");
          exit(1);
       }
    
       if((fnew = fopen(nuovo_file, "rb")) == NULL)
       {
          fprintf(stderr, "\nErrore nell'apertura del file");
          fclose(fold);
          exit(1);
       }   
    
       while(1)
       {
          c = fgetc( fold );
    
          if( !feof( fold ) )
              fputc(c,fnew);
          else
             break;
       } 
       
       fclose(fold);
       fclose(fnew);
    
       return 0;
    }

    Così dovrebbe andare.....
    CIAO

  3. #3
    OPPURE...
    utilizzi il DOS:

    #include <stdio.h>
    #include <stdlib.h>

    ..........
    ..........

    system("xcopy fileA.txt fileB.txt");


    p.s. se ti interessa rendere dinamico il comando dos (inserimento da parte dell'utente dei file origine e destinazione),
    leggi l'ultimo punto del mio post in questa discussione:
    http://forum.html.it/forum/showthrea...hreadid=482778
    ...Terrible warlords, good warlords, and an english song

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.