gpt4 book ai didi

c++ - VS2012 中的 is_directory() 对于偶数目录返回 false

转载 作者:行者123 更新时间:2023-11-28 00:51:28 28 4
gpt4 key购买 nike

我正在运行一个包含多个子目录的目录。我正在使用 recursive_directory_iterator。我有目录 asr->collections->(多个目录和几个文本文件)

#include <iostream>
#include <filesystem>
#include <conio.h>

using namespace std::tr2::sys;

int main () {
std::string path_;
std::cout << " Enter the path ";
std::cin >> path_;

auto dir_path = path(path_);

for (auto it = directory_iterator(dir_path); it != directory_iterator(); ++it)
{
const auto& file = it->path();
std::cout << " path : " << file << std::endl;

if (is_directory (status(it->path())))
std::cout << " It is a directory. " << std::endl;
else
std::cout << " It is not a directory. " << std::endl;
}
_getch();
return 0;
}

我知道我之前发布过这个。这是一个愚蠢的错误,我改变了它。但它仍然是错误的。我遇到的问题是 is-directory 对所有内容都返回 false。我用错了吗。我在下面链接了 MSDN URL。

我安装了 boost 并运行了代码。有效 !提升来源

#include <iostream>
#include <boost\filesystem.hpp>
#include <conio.h>

using namespace boost::filesystem;

int main () {
std::string path_;
std::cout << " Enter the path ";
std::cin >> path_;

auto dir_path = path(path_);

for (auto it = directory_iterator(dir_path); it != directory_iterator(); ++it)
{
const auto& file = it->path();
std::cout << " path : " << file << std::endl;

if (is_directory (status(it->path())))
std::cout << " It is a directory. " << std::endl;
else
std::cout << " It is not a directory. " << std::endl;
}
_getch();
return 0;
}

http://msdn.microsoft.com/en-us/library/hh874754.aspx

此外,我可以使用 boost 文件系统文档作为这方面的教程吗,因为没有关于什么是什么以及如何使用它的良好文档。

最佳答案

if (is_directory (status(dir_path)) )

是的,你用错了。尝试测试文件,而不是 dir_path。您已经知道 dir_path 是一个目录。

关于c++ - VS2012 中的 is_directory() 对于偶数目录返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com