W C++ 14/C++ 17 można użyć niezależnej platformy is_directory()
i is_regular_file()
od filesystem library.
#include <filesystem> // C++17 (or Microsoft-specific implementation in C++14)
std::string pathString = "/my/path";
std::filesystem::path path(pathString); // Construct the path from a string.
if (path.is_directory()) { // Using the non-throwing overload.
// Process a directory.
}
if (path.is_regular_file()) { // Using the non-throwing overload.
// Process a regular file.
}
W języku C++ 14 użyj std::experimental::filesystem
.
#include <experimental/filesystem> // C++14
std::experimental::filesystem::path path(pathString);
W sekcji File types dostępnych jest więcej czeków.
Jeśli potrzebujesz obsługi systemu Windows 98, nie możesz korzystać z tej funkcji. Poniżej znajdziesz moją odpowiedź na temat PathIsDirectory, jeśli potrzebujesz obsługi Win98. – jeffm