2010-03-03 5 views
3

je peux obtenir la date de création, la taille du fichier etc pour un fichier en utilisant le code suivant:Comment obtenir des informations d'annuaire via l'API native de Windows?

// Error handling removed for brevity 
HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
      NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 

LARGE_INTEGER fileSize; 
GetFileSizeEx(hFile, &fileSize); 

FILE_BASIC_INFO fileInfo); 
GetFileInformationByHandle(hFile, FileBasicInfo, fileInfo, sizeof(fileInfo)); 

Mais lorsqu'il est appelé contre un répertoire, toutes les valeurs sont à zéro - comment puis-je obtenir des renseignements d'annuaire?

Merci

Répondre

8

je suis tombé sur quelque chose comme ça une fois que vous devez passer ce drapeau pour obtenir un handle valide pour un répertoire. De la documentation MSDN.

essayer cette

HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
     NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, NULL); 

FILE_FLAG_BACKUP_SEMANTICS | Vous devez définir cet indicateur pour obtenir un handle pour un répertoire. Un handle de répertoire peut être passé à certaines fonctions au lieu d'un handle de fichier. Pour plus d'informations, voir la section Remarques.

+0

ouais je l'ai trouvé après avoir posté la question, et vous êtes sur place, merci – MalcomTucker

Questions connexes