std::vector<StatusParagraphAndAssociatedFiles> get_installed_files(const VcpkgPaths& paths, const StatusParagraphs& status_db) { auto& fs = paths.get_filesystem(); std::vector<StatusParagraphAndAssociatedFiles> installed_files; for (const std::unique_ptr<StatusParagraph>& pgh : status_db) { if (pgh->state != InstallState::INSTALLED) { continue; } const fs::path listfile_path = paths.listfile_path(pgh->package); std::vector<std::string> installed_files_of_current_pgh = fs.read_lines(listfile_path).value_or_exit(VCPKG_LINE_INFO); Strings::trim_all_and_remove_whitespace_strings(&installed_files_of_current_pgh); upgrade_to_slash_terminated_sorted_format(fs, &installed_files_of_current_pgh, listfile_path); // Remove the directories Util::erase_remove_if(installed_files_of_current_pgh, [](const std::string& file) { return file.back() == '/'; }); StatusParagraphAndAssociatedFiles pgh_and_files = { *pgh, SortedVector<std::string>(std::move(installed_files_of_current_pgh))}; installed_files.push_back(std::move(pgh_and_files)); } return installed_files; }