Video: Tutorial 50 - Copiare un file da programma (1 di 2) (C++) 2024
Ah, copiare un file - qualcosa di così semplice, succede sempre. Copia questo file lì; copia quel file qui. Ma cosa succede esattamente quando copi un file? In realtà crei un nuovo file e lo riempi con gli stessi contenuti del file originale. E come lo fai?
Bene, sembra che tu debba leggere ogni singolo byte dal primo file e scriverlo nel secondo. Grande fortuna.
Ma per peggiorare le cose, copiare un file significa che devi assicurarti di copiarlo esattamente allo stesso modo, non incollare accidentalmente uno 0 o due in più alla fine del file, o un ritorno a capo supplementare o un avanzamento a capo alla fine del file (cosa che potrebbe accadere quando si copia un file di testo).
Al termine, i due file devono essere identici, non solo contenere la stessa stessa informazione , ma anche stessa dimensione .
E in più, la maggior parte delle buone routine di copia fanno ancora di più! Forniscono al nuovo file una data che corrisponde alla data del file originale e imposteranno tutti gli attributi, tra cui, ad esempio, di sola lettura se l'originale è un file di sola lettura. (Se il file è di sola lettura, forse non dovresti essere in grado di copiarlo in primo luogo …)
Improvvisamente la copia di un file non sembra così facile dopo tutto!
Se stai programmando in Windows, sei fortunato! Finché non usi l'antica Windows 3. 1, ottieni una funzione CopyFile! Per essere pronti ad usarlo, includi la riga # include nella tua applicazione. Quindi ecco tutto quello che devi fare:
CopyFile ("c: / dog. Txt", "c: / dog2. Txt", TRUE);
Questa copia da c: / dog. da txt a c: / dog2. testo. Ma nota il parametro finale: è la parola VERO in tutte le capitali. Cos'è quello? Questa è una macro del preprocessore definita da qualche parte nelle viscere dei file di intestazione di Windows.
È necessario utilizzare VERO o FALSO quando si chiama una delle funzioni di Windows. Questo perché nei vecchi tempi di C, quando furono inventate le prime versioni di Windows, non esisteva alcun tipo di bool. Quelle persone intraprendenti del tardo XX secolo dovevano definire i loro VERO e FALSO come numeri interi (di solito rispettivamente 1 e 0, rispettivamente 0 e 1, rispettivamente).
E a proposito, quel parametro finale in CopyFile dice alla funzione cosa fare se il file che stai copiando esiste già: TRUE significa non sovrascrivere il file esistente; basta abortire. FALSE significa sovrascriverlo.