【发布时间】:2019-03-15 12:35:50
【问题描述】:
使用 Poco 文档中的 DirectoryIterator 示例,我遇到了一些问题。
这是源代码:
#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。
在调试模式下编译并运行二进制文件时,抛出异常“找不到路径”。
在发布模式下编译并运行二进制文件时,它可以工作,但迭代器“it”没有进化。
它总是显示“a.txt”
我正在尝试使用此目录树的示例:
/test//a.txt
/test//b.txt
/test//test2
/test/test2/c.txt
/test/test2/d.txt
我在 linux 中测试过同样的例子,一切正常。
为什么它在 Linux 中有效,而在 Windows 中无效?
有什么线索吗? 谢谢
【问题讨论】:
标签: c++ iterator directory mingw poco-libraries