Hola Buenas, tengo un programa en C que me gustaría pasar a subprogramas pero siempre me encuentro con algún tope. Me podéis ayudar? Gracias!
Aquí os dejo el código
DWORD umask = GetLogicalDrives();
int i;
char n;
char c[32];
int f = 0;
for (i = 97; i <= 122; i++) {
n = i;
if (umask & 1) {
printf("%c:\\ ", n);
c[f] = n;
f++;
}
umask >>= 1;
}
printf("\nDirectorio de origen %c:\\ \n", c[0]);
printf("Directorio destino %c:\\ \n", c[f - 1]);
char dire[100];
sprintf(dire, "%c:\\copia_%c", c[0], c[f - 1]);
if (CreateDirectory(dire, 0) == TRUE) {
printf("Creado el directorio %c\\copia_%c\\\n", c[0], c[f - 1]);
}
if (SetCurrentDirectory(dire) == TRUE) {
DWORD nBufferLength = GetCurrentDirectory(0, NULL);
char *lpBuffer = (LPTSTR) malloc(nBufferLength);
int tam = GetCurrentDirectory(nBufferLength, lpBuffer);
printf("Lugar de trabajo actual : %s\\ \n", lpBuffer);
}
sprintf(dire,"%c:\\",c[f-1]);
printf("Estoy en el directorio %s:\n",dire);
SetCurrentDirectory(dire);
HANDLE hFind;
WIN32_FIND_DATA datos;
hFind = FindFirstFile("*.*", &datos);
if (hFind != INVALID_HANDLE_VALUE){
while (FindNextFile(hFind,&datos)){
if (!(datos.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
SYSTEMTIME tiempo;
FileTimeToSystemTime(&datos.ftCreationTime, &tiempo);
printf("%2d/%2d/%d %2d:%2d %2s \n", tiempo.wDay, tiempo.wMonth, tiempo.wYear,tiempo.wHour + 1, tiempo.wMinute, datos.cFileName);
sprintf(dire,"%c:\\copia_%c\\%s",c[0],c[f-1],datos.cFileName);
CopyFile(datos.cFileName,dire,TRUE);
}
}
FindClose(hFind);
}
Lo que intento hacer con éste código es mostrar las unidades de mi pc, crear un directorio en una unidad de mi pc, y copiar archivos al anterior directorio en otra unidad.
Gracias!
No te podemos ayudar si no sabemos qué problema tienes exactamente.