2010-08-20 13 views

risposta

6

Utilizzare GetFileAttributes.

Edit: È inoltre possibile controllare SHGetFileInfo

+0

Ma come controllare il percorso del file su un disco? – na1s

+0

Semplicemente, un disco è un percorso che si conclude con i due punti – mmonem

+0

penso che sia possibile controllare da WINAPI – na1s

2

potrebbe provare FindFirstFile:

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

Una volta che hai i dati di trovare (passata come secondo argomento di questa funzione):

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

Inoltre, per vedere se qualcosa è un volume , può provare qualcosa del tipo:

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

Qualcos'altro che può essere utile: http://api.farmanager.com/en/winapi/win32_find_data.html [spiegazione della struttura WIN32_FIND_DATA]. – cubic1271

+0

Ma come controllare il percorso del file su un disco? – na1s

+0

Verificare se il percorso ha una lettera di unità di fronte ad esso? Tutti gli UNC hanno il formato "\\ server \ share \ file_path" Nessuna lettera di unità. – JustBoo

1

Vedere se il percorso ha una lettera di unità di fronte ad essa? Tutti gli UNC hanno il formato "\\ server \ share \ file_path" Nessuna lettera di unità.

Per curiosità, ho esaminato questo aspetto. Basato su questo articolo MSDN Naming Files, Paths, and Namespaces, sembra che il mio consiglio sia esattamente come dice che dovrebbe essere fatto.

+0

Nota che guidano le lettere a volte sono consentiti prima di percorsi UNC: http: //blogs.msdn. com/b/oldnewthing/archive/2005/11/22/495740.aspx –

Problemi correlati