C ++如何获取名称和大小等文件夹信息

时间:2018-04-22 07:53:59

标签: c++ command-line-arguments directory

我需要创建一个程序,输出与可执行文件位于同一目录中的所有文件夹和文件夹大小,当您通过命令提示符执行它时,它应显示与同一目录中的所有文件夹例如,它。 c ++程序的已完成的可执行文件将能够移动到文档文件夹中,当您通过命令提示符执行该文件时,将输出文档文件夹中的所有文件夹。我所知道的是,我可能不得不制作一个矢量或某种容器来保存文件夹名称和文件夹大小,并使用ranged for循环输出它,还有一些commmand行参数可用于修改如何输出信息,例如文件夹按字母顺序排序,什么不是。我应该能够做到这一点,我只是不知道我怎样才能在c ++中提取文件夹信息。如果我知道如何准确获取文件夹名称和大小,我可以开始休息。任何帮助将不胜感激我将如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以使用C ++ 17中的std::filesystem完成大部分内容。

您可以使用current_path()获取当前路径,然后使用directory_iterator()循环遍历目录中包含的所有内容。 file_size()可用于获取文件的大小。

auto path = std::filesystem::current_path();
for (auto& obj : std::filesystem::directory_iterator(path)) {
    // Get size of files
    if (!std::filesystem::is_directory(obj)) {
        auto size = std::filesystem::file_size(obj);
    }
    // Do other things
    // ...
}

如果你能够使用C ++ 17 std::filesystem绝对是可行的方法。