[C con Clase] Detectar las unidades de almacenamiento
Salvador Pozo
salvador en conclase.net
Sab Ago 30 23:02:58 CEST 2008
El pasado 2008-08-29 18:59:58, Ramiro escribió:
R> Holas
R> Estoy queriendo manejar archivos en WIN C pero solo puedo leer los directorios de una unidad específica. No sé cómo detectar las unidades (C, D, E, ...).
R> No solo eso, también quisiera saber de qué tipo es cada una (disco, CD, ..)
Hola:
Existen varias funciones del API para esta tarea.
La primera que te puede servir es:
DWORD GetLogicalDrives(VOID)
El valor de retorno es un mapa de bits, cada bit indica si existe una unidad lógica. El bit de menor peso para la unidad A, el siguiente para la B, etc.
Otra función que te puede ser útil es:
UINT GetDriveType(
LPCTSTR lpRootPathName // address of root path
);
El parámetro es la unidad de disco que quieres examinar, por ejemplo "A:". El valor de retorno indica el tipo de disco:
Valor Significado
0 El tipo no puede ser determinado
1 El directorio raíz no existe
DRIVE_REMOVABLE El disco puede ser extraído de la unidad
DRIVE_FIXED El disco no puede ser extraído de la unidad
DRIVE_REMOTE Es una unidad remota (de red)
DRIVE_CDROM CD-ROM
DRIVE_RAMDISK RAM disk.
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
Más información sobre la lista de distribución Cconclase