web-dev-qa-db-fra.com

Comment vérifier si un répertoire existe en utilisant C ++ et winAPI

Duplicata possible:
Comment vérifiez-vous si un répertoire existe sous Windows en C?

Comment vérifier si un répertoire existe à l'aide de C++ et de l'API Windows?

35
MaSmi

eh bien nous étions tous n0obs à un moment donné. Pas de problème à demander. Voici une fonction simple qui fait exactement cela:

#include <windows.h>
#include <string>

bool dirExists(const std::string& dirName_in)
{
  DWORD ftyp = GetFileAttributesA(dirName_in.c_str());
  if (ftyp == INVALID_FILE_ATTRIBUTES)
    return false;  //something is wrong with your path!

  if (ftyp & FILE_ATTRIBUTE_DIRECTORY)
    return true;   // this is a directory!

  return false;    // this is not a directory!
}
70
FailedDev

Si la liaison avec l'API Shell Lightweight (shlwapi.dll) vous convient, vous pouvez utiliser la fonction PathIsDirectory

8
Simon Mourier

Ce code pourrait fonctionner:

//if the directory exists
 DWORD dwAttr = GetFileAttributes(str);
 if(dwAttr != 0xffffffff && (dwAttr & FILE_ATTRIBUTE_DIRECTORY)) 
6
CopiedFromGoogle

0,1 seconde recherche Google:

BOOL DirectoryExists(const char* dirName) {
  DWORD attribs = ::GetFileAttributesA(dirName);
  if (attribs == INVALID_FILE_ATTRIBUTES) {
    return false;
  }
  return (attribs & FILE_ATTRIBUTE_DIRECTORY);
}
4
user142019