visual-studio - 使用 Visual Studio 2019 C++ 打开文件夹中所有 jpg 或 png 类型的图像文件
问题描述
在上面回答的问题中,有用于 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 ?
解决方案
推荐阅读
- python-3.x - 在 python 仍在运行时保存数据框
- android - countDownTimer 的问题
- amazon-web-services - AWS Elasticsearch Service:如何删除集群 create_index 块?
- python - 无法使用 HTTPDigestAuth 创建会话?
- python - 如何使python自动以时间格式放置冒号(HH:MM:SS)
- javascript - 为什么我的控制台没有记录搜索输入?
- javascript - 建模 Firestore 数据库
- c# - 如何允许用户打开文件并将文件的每个新文件添加到列表框中?
- mongodb - kubernetes mongodb ops manager 为 pod“ops-manager-db-0”运行“VolumeBinding”过滤器插件:pod 具有未绑定的立即 PersistentVolumeClaims
- gcc - 禁用 g++ 构建的所有 AVX-512 指令