2010-08-20 8 views

Respuesta

6

Utilice GetFileAttributes.

Editar: También puede comprobar SHGetFileInfo

+0

Pero, ¿cómo verificar la ruta de archivo de un disco? – na1s

+0

Simplemente, un disco es una ruta que termina con dos puntos – mmonem

+0

Creo que es posible verificar mediante WINAPI – na1s

2

podría intentar FindFirstFile:

http://msdn.microsoft.com/en-us/library/aa364418%28v=VS.85%29.aspx

Una vez que tenga los datos de encontrar (pasados ​​como el segundo argumento para esa función):

if(result->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
{ 
    //file is a directory 
} 
else 
{ 
    //file is not a directory 
} 

También, para ver si algo es un volumen , podría intentar algo como:

if(result->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) 
{ 
    if(result->dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT) 
    { 
     //path is a volume; try using GetVolumeNameForVolumeMountPoint for info 
    } 
} 

HTH

+0

Algo más que puede ser útil: http://api.farmanager.com/en/winapi/win32_find_data.html [explicación de la estructura WIN32_FIND_DATA]. – cubic1271

+0

Pero, ¿cómo verificar la ruta de archivo de un disco? – na1s

+0

¿Ves si la ruta tiene una letra de unidad delante? Todos los UNC toman la forma "\\ server \ share \ file_path" Sin letra de unidad. – JustBoo

1

A ver si el camino tiene una letra de unidad frente a ella? Todos los UNC toman la forma "\\ server \ share \ file_path" Sin letra de unidad.

Por curiosidad lo busqué. Basado en este artículo de MSDN Naming Files, Paths, and Namespaces, parece que mi consejo es exactamente cómo dice que debe hacerse.

+0

Tenga en cuenta que las letras de unidad a veces se permiten antes de las rutas UNC: http: //blogs.msdn. com/b/oldnewthing/archive/2005/11/22/495740.aspx –

Cuestiones relacionadas