Metti le virgolette anche lì, come faresti al prompt dei comandi.
... e sputa in un occhio a chi ti ha detto di fare così.codice://FIXME: non si usa la system; la system è il male! sprintf(command,"copy \"%s\" \"C:\\Programmi\\Adobe\\Adobe Photoshop CS2\\Presets\\Brushes\\\"",brush); system(command);
L'alternativa corretta è usare una funzione come questa:
.codice:/* Copia il file inFile in outFile; restituisce il numero di byte copiati */ size_t copy_file(char * inFile, char * outFile) { FILE *in,*out; if((in=fopen(inFile,"rb"))==NULL) return 0; if((out=fopen(outFile,"wb"))==NULL) { fclose(in); return 0; } size_t len, tot=0; char buffer[1024]; while((len = fread(buffer,1,sizeof(buffer),in)) > 0) { fwrite(buffer,1,len,out); tot+=len; } fclose(in); fclose(out); return tot; }
Esempio di utilizzo:
.codice:char buffer[260]="C:\\Programmi\\Adobe\\Adobe Photoshop CS2\\Presets\\Brushes\\"; strncat(buffer,brush,sizeof(buffer)); file_copy(brush,buffer);

Rispondi quotando