Я работаю над программой, которая требует от меня в нескольких точках импортировать содержимое подкаталога моего проекта C++ в vector<string>
. Предполагая, что каталог проекта называется root\
, и каталог, который я хочу проверить, - root\userFiles
. Эта папка содержит только дополнительные файлы и дополнительные подпапки.Импорт списка файлов в подкаталог в массив
Однако трюк в том, что я ограничен, я не могу использовать ни один из файлов заголовков boost, dirent.h. Просто основные.
Одним из решений, которое я смог придумать, было использование команды system("dir /b * > userFiles/fileList.txt");
, а затем фильтрация результатов путем чтения этого файла и импорта его в вектор.
Моя проблема заключается в том, как я «CD» в эту папку, запустите эту команду в то же время в этой папке, а затем выйдите обратно в корневую папку ..
Я попытался с помощью команды system("chdir userFiles/")
но я все еще получая все файлы в корневой папке.
Любая помощь будет оценена по достоинству.
Если вы используете 'chdir' (или' _chdir', это может быть под Windows), чтобы перейти в другой каталог FIRST, а затем запустить 'system', он будет работать так, как вы ожидаете. В противном случае есть много вопросов с хорошими ответами, описывающих, как вы на самом деле получаете имена файлов каталога здесь. –
Как я указал в вопросе. 'chdir', похоже, не работает. Я получаю список всех файлов во всей корневой папке. Что касается ответов, большинство из них требуют, чтобы я использовал какой-то файл заголовка третьей стороны, который я не могу использовать. – shadoweye14
Я предполагаю, что вы используете «окна», и в этом случае вы должны иметь возможность использовать '' правильно? Если вы не можете использовать 'windows.h', я бы использовал fstream для создания пакетного файла, который содержит каталог' 'cd-you-want \ ndir/b''. –