首页 > 解决方案 > 使用 Visual Studio 2019 C++ 打开文件夹中所有 jpg 或 png 类型的图像文件

问题描述

如何使用 C 或 C++ 获取目录中的文件列表?

在上面回答的问题中,有用于 C++ 迭代单个文件夹的所有文件的示例代码,如下所示:

#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;

int main() {
    std::string path = "/path/to/directory";
    for (const auto & entry : fs::directory_iterator(path))
        std::cout << entry.path() << std::endl;
}

但是当我尝试将它合并到我的程序中时,我已经可以一次成功打开一个 .jpg 文件或 .png 文件(耶!),我从 Visual Studio 2019 C++ 编译器中遇到了以下两个问题:

命名空间“std”没有成员“文件系统”

name 后跟 '::' 必须是类名或命名空间名

而且我猜,这是 VS2019 C++ 中的一个简单语法错误,与命名空间有关,但我不知道如何修复它。如果我了解 C++(并且已经有几年了),命名空间声明是简洁代码的捷径,但仍然可以确保编译器在有来自不同类的同名(术语是什么)时使用正确的类? 换句话说,

namespace fs = std::filesystem;

将 fs 的所有实例替换为 std::filesystem 以允许更清晰的代码。我可以通过用 std::filesystem 替换 fs 来摆脱第一个错误

    for (const auto & entry : std::filesystem::directory_iterator(path))

但是第二个错误仍然存​​在,所以我仍然不明白这个错误。是不是从标准库中找不到文件系统,您是否必须在 VS2019 C++ 中手动执行某些操作才能 #include ?

标签: visual-studiovisual-c++

解决方案


推荐阅读