如何使用C ++和winAPI检查目录是否存在

时间:2011-11-22 21:09:03

标签: c++ winapi dir

  

可能重复:
  How do you check if a directory exists on Windows in C?

如何使用C ++和Windows API检查目录是否存在?

4 个答案:

答案 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);
}