Con C++ 14/C++ 17 puede usar la plataforma independiente is_directory()
y is_regular_file()
del 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.
}
En C++ 14 use std::experimental::filesystem
.
#include <experimental/filesystem> // C++14
std::experimental::filesystem::path path(pathString);
En la sección File types más verificaciones están disponibles.
Si necesita soportar Windows 98, entonces no puede usar esta función. Vea mi respuesta sobre PathIsDirectory a continuación si necesita soporte Win98. – jeffm