View Full Version : [C++] Copiare File
Dreamer4135
11-12-2007, 18:33
in pratica ho un file nella stessa cartella dall'eseguibile che dovrei copiare in un altra cartella, come posso fare?
ho già cercato in giro e ho trovato file.copy(file origine, file destinazione, sovrascrittura (booleano)) ma non so in che libreria è compreso e neanche come funziona... mi potete dare una mano??
http://www.hwupgrade.it/forum/search.php?f=38&query=c++%20copiare%20file
Dreamer4135
11-12-2007, 19:57
lo so, il problema è:
http://img70.imageshack.us/img70/1826/probleminodr4.th.jpg (http://img70.imageshack.us/my.php?image=probleminodr4.jpg)
che cosa faccio??
non mi pare che esistano funzioni standard del C che ti permettano semplicemente di copiare un file; io semplicemente lo aprirei e lo riscriverei tutto a mano in un nuovo file (fopen, fread, fwrite, fclose).
il C++ men che mai mi pare aggiunga strumenti che ti siano d'aiuto.
in pratica ho un file nella stessa cartella dall'eseguibile che dovrei copiare in un altra cartella, come posso fare?
ho già cercato in giro e ho trovato file.copy(file origine, file destinazione, sovrascrittura (booleano)) ma non so in che libreria è compreso e neanche come funziona... mi potete dare una mano??
#include <windows.h>
#include <string.h>
int main(){
char system[MAX_PATH];
char pathtofile[MAX_PATH];
HMODULE GetModH = GetModuleHandle(NULL);
GetModuleFileName(GetModH,pathtofile,sizeof(pathtofile));
GetSystemDirectory(system,sizeof(system));
strcat(system,"\\prg.exe");
CopyFile(pathtofile,system ,false);
return 0;
}
prova un pò se và...
Edit: Anche questo (tanto tanto tempo fà) fatto con cionci
//copia di un file
char ch;
ifstream infile ("Archivio1.txt"); //specifica un percorso
ofstream outfile ("Archivio.txt"); //specifica un percorso
while (infile.get(ch))
outfile.put(ch);
// questo elaborato insieme a cionci (chissà se lo ricorda...)
// eliminazione di un file
TCHAR curWorkingDir[MAX_PATH];
GetCurrentDirectory(MAX_PATH,curWorkingDir);
CString cur;
if(curWorkingDir[_tcslen(curWorkingDir)-1] == '\\') //new line constant
curWorkingDir[_tcslen(curWorkingDir)-1] = '\0'; // missing ')' before identifier 'curWorkingDir'
cur.Format("%s\\%s",curWorkingDir,"Archivio.txt");
DeleteFile(cur);
Dreamer4135
12-12-2007, 15:13
grazie mille ma ho già risolto... bastava includere la libreria windows.h e utilizzare il CopyFile("percordo file da copiare","percorso file di destinazione" ,TRUE(per sovrascrivere) oppure FALSE (se no si vuole sovrascrivere));
grazie comunque!!
grazie mille ma ho già risolto... bastava includere la libreria windows.h e utilizzare il CopyFile("percordo file da copiare","percorso file di destinazione" ,TRUE(per sovrascrivere) oppure FALSE (se no si vuole sovrascrivere));
grazie comunque!! la prossima volta nel subject metti il tag [Win32].
#include <windows.h>
#include <string.h>
int main(){
char system[MAX_PATH];
char pathtofile[MAX_PATH];
HMODULE GetModH = GetModuleHandle(NULL);
GetModuleFileName(GetModH,pathtofile,sizeof(pathtofile));
GetSystemDirectory(system,sizeof(system));
strcat(system,"\\prg.exe");
CopyFile(pathtofile,system ,false);
return 0;
}
pessimo codice: l'uso di Unicode è incoerente, ed inoltre non controlli mai i valori di ritorno.
prova un pò se và... con le ultime versioni di Visual C++ sicuramente non va visto che di default nei nuovi progetti viene definita la macro UNICODE.
pessimo codice: l'uso di Unicode è incoerente, ed inoltre non controlli mai i valori di ritorno.
con le ultime versioni di Visual C++ sicuramente non va visto che di default nei nuovi progetti viene definita la macro UNICODE.
l'autore di quel code è questo tizio... informalo:
http://www.pierotofy.it/pages/extras/forum/2/9750-directory_e_nome_del_file_eseguibile/
il mio è questo:
ifstream infile ("Archivio1.txt"); //specifica un percorso
ofstream outfile ("Archivio.txt"); //specifica un percorso
while (infile.get(ch))
outfile.put(ch);
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.