C++およびWindows APIを使用してディレクトリが存在するかどうかを確認するにはどうすればよいですか?
まあ、私たちはすべての時点で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!
}
Shell Lightweight API(shlwapi.dll)へのリンクが問題ない場合は、 PathIsDirectory関数 を使用できます。
このコードは動作する可能性があります。
//if the directory exists
DWORD dwAttr = GetFileAttributes(str);
if(dwAttr != 0xffffffff && (dwAttr & FILE_ATTRIBUTE_DIRECTORY))
0.1秒のGoogle検索:
BOOL DirectoryExists(const char* dirName) {
DWORD attribs = ::GetFileAttributesA(dirName);
if (attribs == INVALID_FILE_ATTRIBUTES) {
return false;
}
return (attribs & FILE_ATTRIBUTE_DIRECTORY);
}