Я хочу получить список всех файлов в каталоге, используя boost :: filesystem
Я могу напечатать имена файлов, используя cout
но я не могу хранить имена файлов в строковой переменной. Я также пробовал приведение типов и strcpy, но ни один из методов не работает.
Ниже приведен код:
char dir[100] = "/home/harsh/";
namespace fs = boost::filesystem;
fs::directory_iterator start = fs::directory_iterator(dir);
fs::directory_iterator di = start;
for (; di != fs::directory_iterator(); ++di)
{
std::cout << "hello .. " << di->path() << std::endl;
//std::string strHarsh = di->path(); //Error
}
пытаться di->leaf()
это должно преобразовать в строку
Также это зависит от вашей версии boost, если вы используете файловую систему v3, это будет:
di->path().filename().string()
Вы могли бы использовать std::ostringstream
в качестве промежуточного:
std::ostringstream os;
os << di->path();
std::string path = os.str();