Determinar si un directorio es una carpeta montada

Resulta útil determinar si un directorio es una carpeta montada cuando, por ejemplo, está usando una aplicación de copia de seguridad o de búsqueda limitada a un volumen. Esta aplicación puede llegar a información sobre varios volúmenes si usa funciones como SetVolumeMountPoint para crear carpetas montadas para los demás volúmenes del volumen al que está limitada la aplicación. Para obtener más información, vea Crear carpetas montadas.

Para determinar si un directorio especificado es una carpeta montada, primero llame a la función GetFileAttributes e inspeccione la marca de FILE_ATTRIBUTE_REPARSE_POINT en el valor devuelto para ver si el directorio tiene un punto de reanálisis asociado. Si es así, use las funciones FindFirstFile y FindNextFile para obtener la etiqueta de reanálisis en el miembro dwReserved0 de la estructura WIN32_FIND_DATA . Para determinar si el punto de reanálisis es una carpeta montada (y no alguna otra forma de punto de reanálisis), pruebe si el valor de etiqueta es igual al valor IO_REPARSE_TAG_MOUNT_POINT. Para obtener más información, vea Puntos de reanálisis.

Para obtener el volumen de destino de una carpeta montada, use la función GetVolumeNameForVolumeMountPoint .

De forma similar, puede determinar si un punto de reanálisis es un vínculo simbólico probando si el valor de etiqueta es IO_REPARSE_TAG_SYMLINK.

Constantes de atributo de archivo