Подтвердить что ты не робот

Как проверить, существует ли каталог с использованием С++ и winAPI

Возможный дубликат:
Как проверить, существует ли каталог в Windows на C?

Как проверить, существует ли каталог с использованием С++ и API Windows?

4b9b3361

Ответ 1

Ну, мы все были n0obs в какой-то момент времени. Нет проблем в вопросе. Вот простая функция, которая выполняет именно это:

#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!
}

Ответ 2

Этот код может работать:

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

Ответ 3

Если ссылка на оболочку Lightweight API (shlwapi.dll) подходит для вас, вы можете использовать функцию PathIsDirectory

Ответ 4

0.1 секунд Поиск в Google:

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