Как проверить, существует ли каталог с использованием С++ и winAPI
Возможный дубликат:
Как проверить, существует ли каталог в Windows на C?
Как проверить, существует ли каталог с использованием С++ и API Windows?
Ответы
Ответ 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);
}