可能重复:
How do you check if a directory exists on Windows in C?
如何使用C ++和Windows API检查目录是否存在?
答案 0 :(得分:66)
我们在某个时间点都是 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!
}
答案 1 :(得分:7)
如果链接到shell轻量级API(shlwapi.dll)没问题,可以使用PathIsDirectory function
答案 2 :(得分:6)
此代码可能有效:
//if the directory exists
DWORD dwAttr = GetFileAttributes(str);
if(dwAttr != 0xffffffff && (dwAttr & FILE_ATTRIBUTE_DIRECTORY))
答案 3 :(得分: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);
}