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

C++ How to get folder information such as names and sizes

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

大多数您想做的事情都可以使用 C++17std::filesystem

来完成

您可以使用 current_path() and you can then loop over everything contained in a directory using directory_iterator(). file_size() 获取当前路径 current_path() and you can then loop over everything contained in a directory using 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 绝对是正确的选择。