Я не использую boost, я использую файловую систему C ++ 17, которая в основном основана на файловой системе Boosts.
Я хочу перечислить каталоги, имена файлов и ярлык родительского каталога «..» с использованием файловой системы C ++. У меня нет проблем с добавлением каталогов и имен файлов в список, я делаю это следующим образом:
string path="C:\something\test";
//add missing code here:
//should find: ".." or not.
//add directories to list
for (auto& p : directory_iterator(path))
{
if (p.is_directory())
{
string name = p.path().filename().string();
list[index].push_back(name);
}
}
//add files to list
for (auto& p : directory_iterator(path))
{
if (!p.is_directory())
{
string filename = p.path().filename().string(); //hele filnavnet (med filtype)
list[index].push_back(filename);
}
}
Это работает хорошо, но проблема в том, что мне не хватает «..», если я нахожусь в подкаталог, например C: \ something \ test \ path. Я хочу узнать, доступен ли родительский путь, как проще всего это сделать с помощью файловой системы?
И то же самое, если путь - «C:», тогда моя программа следует сказать, что ".." недоступно. По сути, список может выглядеть примерно так, если я нахожусь в C: \ something \ test \
..
AnotherDirectory
YetAnotherDirectory
file1.txt
file2.txt
etc.txt
, и если я нахожусь в «C:», список будет выглядеть примерно так (без "..")
Something
Directory2
file1.txt
command.com
autoexec.but
config.lol