Ich durchlaufe alle Dateien in einem Ordner und möchte nur deren Namen in einer Zeichenfolge. Ich möchte eine Zeichenfolge aus einem std::filesystem::path
. Wie mache ich das?
Mein Code:
#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::experimental::filesystem;
int main()
{
std::string path = "C:/Users/user1/Desktop";
for (auto & p : fs::directory_iterator(path))
std::string fileName = p.path;
}
Ich erhalte jedoch den folgenden Fehler:
non-standard syntax; use '&' to create a pointer to a member.
Verwenden Sie zum Konvertieren eines std::filesystem::path
in einen nativ codierten String (dessen Typ std::filesystem::path::value_type
Ist) das string()
Methode. Beachten Sie die anderen *string()
-Methoden, mit denen Sie Zeichenfolgen einer bestimmten Codierung abrufen können (z. B. u8string()
für eine UTF-8-Zeichenfolge).
Beispiel:
#include <filesystem>
#include <string>
namespace fs = std::filesystem;
int main()
{
fs::path path = fs::u8path(u8"愛.txt");
std::string path_string = path.u8string();
}