C++:
检查目录是否存在

如何做:

在现代C++(C++17及以后版本)中,你可以使用文件系统库来检查一个目录是否存在。它提供了一种直接且标准化的方式来执行文件系统操作,包括检查目录是否存在。

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main() {
    const fs::path dirPath = "/path/to/directory";

    if (fs::exists(dirPath) && fs::is_directory(dirPath)) {
        std::cout << "该目录存在。" << std::endl;
    } else {
        std::cout << "该目录不存在。" << std::endl;
    }

    return 0;
}

如果目录存在,示例输出为:

该目录存在。

如果目录不存在,示例输出为:

该目录不存在。

对于尚未使用C++17或需要额外功能的项目,Boost文件系统库是一种流行的第三方选择,提供了类似的功能。

#include <iostream>
#include <boost/filesystem.hpp>

namespace fs = boost::filesystem;

int main() {
    const fs::path dirPath = "/path/to/directory";

    if (fs::exists(dirPath) && fs::is_directory(dirPath)) {
        std::cout << "该目录存在。" << std::endl;
    } else {
        std::cout << "该目录不存在。" << std::endl;
    }

    return 0;
}

使用Boost文件系统,输出将与C++17文件系统示例相同,具体取决于指定路径上目录的存在性。