int main(int argc, char** argv) {
char directorio[99] = "E:\\Users\\Javier\\Documents\\Universidad", fichero[99] = "solucion_enero_12.pdf";
char letras[99]="c*o.*";
char copiar1[99]="E:\\Users\\Javier\\Documents\\Universidad\\Numero1";
char copiar2[99]="E:\\Users\\Javier\\Documents\\Universidad\\Numero2";
copiar(copiar1,copiar2);
return (EXIT_SUCCESS);
}
void copiar(char *dir_orig,char *dir_dest){
WIN32_FIND_DATA datos;
HANDLE hFind;
char destino[99];
SetCurrentDirectory(dir_orig);
hFind=FindFirstFile("*.*",&datos);
if(hFind==INVALID_HANDLE_VALUE){
printf("No encontrado\n ");
exit(1);
}
if(!(datos.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
sprintf(destino,"%s%s",&dir_dest, datos.cFileName);
printf("%s\n",datos.cFileName);
CopyFile(datos.cFileName,destino,FALSE);
}
while(FindNextFile(hFind,&datos))
{
if(!(datos.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
sprintf(destino,"%s%s",&dir_dest,datos.cFileName);
printf("%s\n",datos.cFileName);
CopyFile(datos.cFileName,destino,FALSE);
}
}
}
函数copiar(,)应将第一个路径的文件夹内的所有内容复制到第二个文件夹中。但它只是复制文件本身并以奇怪的方式重命名它们。调试器甚至不工作。有什么帮助吗?
答案 0 :(得分:0)
首先:
sprintf(destino,"%s%s",&dir_dest, datos.cFileName);
在dir_dest,之前不应该有&
,并且在目录和文件名之间应该有一个路径分隔符
和紧随其后的一行:
printf("%s\n",datos.cFileName);
还应包含destino
(请注意,这样做可能已经回答了您的问题/并解决了您的问题
答案 1 :(得分:0)
可能是因为只有当datos
不是目录时才进行复制:
if(!(datos.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))