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) {
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
); }
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!