Metti le virgolette anche lì, come faresti al prompt dei comandi.
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);
... e sputa in un occhio a chi ti ha detto di fare così.
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);
.