c++ - DirectoryIterator 可能存在的错误
问题描述
使用DirectoryIterator
Poco 文档中的示例,我遇到了一些问题。
这是源代码:
#include "Poco/DirectoryIterator.h"
#include <iostream>
using Poco::DirectoryIterator;
using Poco::Path;
int main(int argc, char** argv) {
std::string cwd(Path::current());
DirectoryIterator it(cwd);
DirectoryIterator end;
while (it != end) {
std::cout << it.name();
if (it->isFile())
std::cout << it->getSize();
std::cout << std::endl;
Path p(it.path());
++it;
}
return 0;
}
我在 Msys2 和 Windows 7 下使用带有 gcc 8.2 的 Mingw(也使用 Windows 10 进行了测试)。使用 Eclipse CDT 作为 IDE。
在调试模式下编译并运行二进制文件时,抛出异常“找不到路径”。
在发布模式下编译并运行二进制文件时,它可以工作,但迭代器“它”没有进化。
它总是显示“ a.txt ”
我正在尝试使用此目录树的示例:
/test//a.txt
/test//b.txt
/test//test2
/test/test2/c.txt
/test/test2/d.txt
我已经在 linux 中测试了相同的示例,一切正常。
为什么它在 Linux 中有效,而在 Windows 中无效?
有什么线索吗?谢谢
解决方案
编译你的程序,我收到下一条消息:“ Compiling POCO on Windows without #define POCO_WIN32_UTF8 is deprecated
”
你需要编译#define POCO_WIN32_UTF8.
#define POCO_WIN32_UTF8
#include "Poco/DirectoryIterator.h"
推荐阅读
- python - 在python中将一列取消嵌套到多列中
- python - 烧瓶表仅显示 Python 列表中的第一行,for 循环不适用于行
- flutter - Flutter Web url 名称不正确
- model-view-controller - 如何使用jquery获取以下代码的复选框选定值
- cygwin - Windows Server 上的 Tar 失败
- python - 在创建字典时设置字典的值
- sql - SQL 枢轴问题
- node.js - 错误的原因 Connect ETIMEDOUT ipadd:27017 during connection the aws ec2 with mongodb compass
- php - php文件路径(没有这样的文件或目录)
- reactjs - saga 和 redux 在反应